Как пометить пакет в Ubuntu / Debian как не подлежащий автоматическому удалению?

9

Предположим, у меня есть пакет (в данном случае пакет Python), который я устанавливаю с помощью Synaptic. Поскольку версия этого пакета несколько устарела, я удаляю его в Synaptic, а затем устанавливаю его с помощью easy_install. Одна из его зависимостей была также установлена ​​с использованием Synaptic, но я бы предпочел сохранить версию, установленную Synaptic, а не easy_installingее.

Единственная проблема заключается в том, что зависимость теперь помечена как автоматически удаляемая. Есть ли способ пометить его как устанавливаемый вручную, кроме как удалить его и переустановить? Если это имеет значение, я использую Ubuntu Jaunty.

Джейсон Бейкер
источник

Ответы:

3

Вы можете «держать» пакет в Ubuntu.

Удержание пакета означает, что вы говорите менеджеру пакетов сохранить текущую версию, несмотря ни на что. Это полезно, если более свежая версия работающей в данный момент программы перестает работать после обновления.

Вы можете сделать это через Synaptic или из командной строки через apt / dpkg. Версия командной строки для хранения пакета:

echo package_name hold | dpkg --set-selections

В документации сообщества Ubuntu есть более полное руководство, объясняющее, как прикреплять или хранить пакеты .


источник
Спасибо! askubuntu.com/questions/140136/…
Андрейс Каиников
2
Удержание обычно используется для предотвращения обновления до более новых версий; это не должно использоваться, чтобы держать пакет. Использование удержания заблокирует вас от получения обновлений безопасности и дистрибутивов, а также будет дополнительным бременем во время обновлений. Пометка пакета как установленного вручную должна быть правильной (см. Мой ответ ...).
Томас Гайот-Сионнест
6

Я знаю, что вы можете сделать это в способности. Вы можете сделать это либо в графическом интерфейсе, выбрав пакет и нажав «m», либо выбрав «Отметить руководство» в меню «Пакет», либо используя командную строку:

aptitude install <имя_пакета> & m
danadam
источник
5

Вы можете использовать apt-mark manual <package>для этого, из Synaptic, Package=> [ ] Automatically Installed(снимите флажок).

например:

# Mark <some_package> as manually-installed:
apt-mark manual <some_package>

# Mark <other_package> as automatically-installed (ex if you know it's a
# dependency to something else and you want to make sure it'll be
# auto-removable if it's no longer used):
apt-mark auto <other_package>

Кроме того, если вы используете apt-get install <package>пакет, который уже установлен, он будет неявно помечен как ручной.

Томас Гайот-Сионнест
источник
Это, кажется, делает именно так, как хотелось бы. Это изменило статус моей посылки с [installed,auto-removable]просто [installed].
mwfearnley