Дуга Linux pacman указывающий версию пакета

Около LD_PRELOAD приемы. Простая альтернатива, которая может работать над несколькими системами, была бы к двоичному редактированию копией системной библиотеки, которая обрабатывает разрешение сетевых имен для замены /etc/hosts с собственным путем.

Например, на Linux:

Если Вы не используете nscd, копия libnss_files.so к некоторому собственному местоположению как:

mkdir -p -- ~/lib &&
cp /lib/x86_64-linux-gnu/libnss_files.so.2 ~/lib

(общая библиотека может быть расположена в другом месте, например. /lib/libnss_files.so.2)

Теперь, двоичное редактирование копия для замены /etc/hosts там к чему-то та же длина как /tmp/hosts.

perl -pi -e 's:/etc/hosts:/tmp/hosts:g' ~/lib/libnss_files.so.2

Править /tmp/hosts для добавления записи, Вы хотите. И используйте

export LD_LIBRARY_PATH=~/lib

для nss_files заглянуть /tmp/hosts вместо /etc/hosts.

Вместо /tmp/hosts, Вы могли также сделать его /dev/fd//3 (сюда использование двух наклонных черт так, чтобы длина /dev/fd//3 совпадает с тем из /etc/hosts), и сделать

exec 3< ~/hosts

Например, который позволил бы различным командам использовать отличающийся hosts файлы.

Если nscd установлен и выполнение, можно обойти его путем выполнения того же приема, но на этот раз для libc.so.6 и замените путь к сокету nscd (что-то как /var/run/nscd/socket) с некоторым несуществующим путем.

12
05.12.2013, 15:36
1 ответ

Вы не можете указать версию что легко как прокручивающийся выпуск, pacman только обеспечит последнее. При установке чего-то тот пакет хранится в компьютере на /var/cache/pacman/pkg/ dir, поэтому если Вы хотите понизить одну версию или указать другого, необходимо использовать pacman -U и название пакета в Вашем кэше. Существует "машина времени" repos там, где люди просто хранят старые пакеты, можно загрузить версию, которую Вы хотите и используете pacman -U устанавливать его.

Знайте, что необходимо "заблокировать" обновления того пакета, если Вы не хотите, чтобы он обновил, видел, как, проверьте Wiki в pacman страницу или этот https://wiki.archlinux.org/index.php/Downgrading_Packages#Q: _ I_cannot_downgrade_a_package.2C_because_of_dependencies.

10
27.01.2020, 19:56
  • 1
    я знаю о pacman-U и ранее установленных пакетах и также о Машинах Отката Дуги. Мой вопрос был действительно предназначен о том, как упростить процесс поиска правильной версии пакета. –  meridius 05.12.2013, 18:13
  • 2
    @meridius Вы задаете неправильный вопрос: Дуга является прокручивающимся выпуском, единственная версия пакета - для всех намерений - является текущей версией. Частичные обновления не поддерживаются. –  jasonwryan 05.12.2013, 18:24
  • 3
    "как прокручивающийся выпуск, pacman только обеспечит последнее". Неправильно! Прокрутка realease не подразумевает это. У Вас может быть прокручивающийся выпуск, который поддерживает более старые пакеты. –  Rok Kralj 06.02.2014, 16:37
  • 4
    @meridius, которого я использовал pacman -U опция с полным URL пакета мне было нужно по archive.archlinux.org/packages. Также можно хотеть добавить, что специальный пакет к черному списку, иначе это будет overrided. @jasonwryan, Прокручивая выпуск обладает многими преимуществами, но somethins поставляют happes, и Вы вынуждены сохранить некоторых "не, что новая" версия :D непока меры не применяются. –  m3nda 24.04.2017, 18:14

Теги

Похожие вопросы