Обычно на моем 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]
Да, пиннинг более надежный, чем apt-mark.
То, что я обнаружил:
последние 12-14 лет Synaptic использует свой собственный файл пиннинга (/ var / lib / synaptic / preferences) - см. ошибку 42178 на стартовой панели. Для общесистемного может потребоваться установить символическую связь между /etc и Synapticsudo 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/), он более надежный и просто.
Да, пиннинг более надежный, чем apt-mark.
То, что я обнаружил:
последние 12-14 лет Synaptic использует свой собственный файл пиннинга (/ var / lib / synaptic / preferences) - см. ошибку 42178 на стартовой панели. Для общесистемного может потребоваться установить символическую связь между /etc и Synapticsudo 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/), он более надежный и просто.
Да, пиннинг более надежный, чем apt-mark.
То, что я обнаружил:
последние 12-14 лет Synaptic использует свой собственный файл пиннинга (/ var / lib / synaptic / preferences) - см. ошибку 42178 на стартовой панели. Для общесистемного может потребоваться установить символическую связь между /etc и Synapticsudo 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/), он более надежный и просто.