Что более надежно - apt-mark или APT-pin (/etc/apt/preferences.d/pin) для блокировки версии?

Обычно на моем Ubuntu 16.04 LTS я блокирую версии пакетов с функциональностью APT-pin.

Например, если я хочу вывести meld в версию 1.5.3-1ubuntu1, я создаю следующий pin- file:

cat <<EOF | sudo tee /etc/apt/preferences.d/pin-meld Package: meld Pin: version 1.5.3-1ubuntu1 Pin-Priority: 1337 EOF

В этом файле применяются общесистемные установки: apt, apt-get, aptitude и инструменты GUI, такие как synaptic и muon.

Я знаю другой механизм - apt-mark. Предположим. Моя начальная точка - я установил вручную 1.5.3-1ubuntu1 , его вывод удален.

$ apt-mark showhold $ apt-cache policy meld meld: Installed: 1.5.3-1ubuntu1 Candidate: 3.14.2-1 Version table: 3.14.2-1 500 500 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages 500 http://archive.ubuntu.com/ubuntu xenial/universe i386 Packages *** 1.5.3-1ubuntu1 100 100 /var/lib/dpkg/status

Затем я держу установленную версию.

$ sudo apt-mark hold meld meld set on hold. $ dpkg -l | grep meld hi meld 1.5.3-1ubuntu1 all graphical tool to diff and merge files

APT-mark показывает, что он находится в режиме ожидания. Но apt-cache policy meld не имеет изменений

$ apt-cache policy meld meld: Installed: 1.5.3-1ubuntu1 Candidate: 3.14.2-1 Version table: 3.14.2-1 500 500 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages 500 http://archive.ubuntu.com/ubuntu xenial/universe i386 Packages *** 1.5.3-1ubuntu1 100 100 /var/lib/dpkg/status

apt-get upgrade сообщает, что meld сохраняется:

$ sudo apt-get upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following packages have been kept back: meld 0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.

Но если я запустил aptitude в интерактивном режиме I [:

Actions Undo Package Resolver Search Options Views Help C-T: Menu ?: Help q: Quit u: Update g: Preview/Download/Install/Remove Pkgs aptitude 0.7.4 --\ Upgradable Packages (1) --\ gnome - The GNOME Desktop Environment (1) --\ universe - Unsupported Free Software. (1) ih meld 1.5.3-1ubuntu1 3.14.2-1

и если я случайно выбрал Действия -> Отменить ожидающие действия, трюк будет удален.

As [ Я могу понять, что synaptic игнорирует метки apt-mark, его Действия -> Отмена ожидающих действий. работает по-разному. meld указан здесь как установленный (обновляется). Кнопка «Отметить все обновления» не выбирается автоматически, но пакет может быть случайно обновлен Mark for Upgrade.

Мюон работает одинаково с пакетами, хранящимися в apt-mark. Но что интересно, его опция Установлена ​​(обновляется) записывает pin-файл в /etc/apt/preferences.d/meld.

Я правильно понял, что APT-контакт более надежный, чем apt-mark? [ ! d22]

3
задан 4 February 2018 в 00:51

3 ответа

Да, пиннинг более надежный, чем apt-mark.

То, что я обнаружил:

последние 12-14 лет Synaptic использует свой собственный файл пиннинга (/ var / lib / synaptic / preferences) - см. ошибку 42178 на стартовой панели. Для общесистемного может потребоваться установить символическую связь между /etc и Synaptic
sudo ln -s /etc/apt/preferences.d/synaptic /var/lib/synaptic/preferences
, поэтому обходным путем, блокировка версий в Synaptic не рекомендуется методу (этот файл не читается apt-get и aptitude). Muon использует общесистемные пин-файлы для каждого приложения в /etc/apt/preferences.d. aptitude имеет две ошибки: на 14.04 LTS он полностью не соблюдает apt-mark (см. мою ошибку 1747189 на стартовой панели). на 16.04 LTS hold, которые были установлены apt-mark, теряются после нажатия Actions -> Отменить ожидающие действия (см. мою ошибку 1747191 на стартовой панели). но в 18.04 LTS aptitude не имеют таких ошибок, это здорово.

Итак, мой вывод следующий: apt-mark можно использовать, только если вы устанавливаете / удаляете / обновляете программное обеспечение только с помощью apt-get, в противном случае вы должны использовать пиннинг (т.е. /etc/apt/preferences.d/), он более надежный и просто.

2
ответ дан 22 May 2018 в 13:19

Да, пиннинг более надежный, чем apt-mark.

То, что я обнаружил:

последние 12-14 лет Synaptic использует свой собственный файл пиннинга (/ var / lib / synaptic / preferences) - см. ошибку 42178 на стартовой панели. Для общесистемного может потребоваться установить символическую связь между /etc и Synaptic sudo ln -s /etc/apt/preferences.d/synaptic /var/lib/synaptic/preferences , поэтому обходным путем, блокировка версий в Synaptic не рекомендуется методу (этот файл не читается apt-get и aptitude). Muon использует общесистемные пин-файлы для каждого приложения в /etc/apt/preferences.d. aptitude имеет две ошибки: на 14.04 LTS он полностью не соблюдает apt-mark (см. мою ошибку 1747189 на стартовой панели). на 16.04 LTS hold, которые были установлены apt-mark, теряются после нажатия Actions -> Отменить ожидающие действия (см. мою ошибку 1747191 на стартовой панели). но в 18.04 LTS aptitude не имеют таких ошибок, это здорово.

Итак, мой вывод следующий: apt-mark можно использовать, только если вы устанавливаете / удаляете / обновляете программное обеспечение только с помощью apt-get, в противном случае вы должны использовать пиннинг (т.е. /etc/apt/preferences.d/), он более надежный и просто.

2
ответ дан 17 July 2018 в 21:38

Да, пиннинг более надежный, чем apt-mark.

То, что я обнаружил:

последние 12-14 лет Synaptic использует свой собственный файл пиннинга (/ var / lib / synaptic / preferences) - см. ошибку 42178 на стартовой панели. Для общесистемного может потребоваться установить символическую связь между /etc и Synaptic sudo ln -s /etc/apt/preferences.d/synaptic /var/lib/synaptic/preferences , поэтому обходным путем, блокировка версий в Synaptic не рекомендуется методу (этот файл не читается apt-get и aptitude). Muon использует общесистемные пин-файлы для каждого приложения в /etc/apt/preferences.d. aptitude имеет две ошибки: на 14.04 LTS он полностью не соблюдает apt-mark (см. мою ошибку 1747189 на стартовой панели). на 16.04 LTS hold, которые были установлены apt-mark, теряются после нажатия Actions -> Отменить ожидающие действия (см. мою ошибку 1747191 на стартовой панели). но в 18.04 LTS aptitude не имеют таких ошибок, это здорово.

Итак, мой вывод следующий: apt-mark можно использовать, только если вы устанавливаете / удаляете / обновляете программное обеспечение только с помощью apt-get, в противном случае вы должны использовать пиннинг (т.е. /etc/apt/preferences.d/), он более надежный и просто.

2
ответ дан 23 July 2018 в 22:15

Другие вопросы по тегам:

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