Как в Ubuntu/Debian пометить пакет как не подлежащий автоматическому удалению?
Предположим, у меня есть пакет (в данном случае пакет Python), который я устанавливаю с помощью Synaptic. Поскольку версия этого пакета несколько устарела, я удаляю его в Synaptic, а затем устанавливаю, используя easy_install
, Одна из его зависимостей была также установлена с использованием Synaptic, но я бы предпочел оставить версию, установленную Synaptic, а не easy_installing
это также.
Единственная проблема заключается в том, что зависимость теперь помечена как автоматически удаляемая. Есть ли способ пометить его как устанавливаемый вручную, кроме как удалить его и переустановить? Если это имеет значение, я использую Ubuntu Jaunty.
3 ответа
Вы можете "держать" пакет в Ubuntu.
Удержание пакета означает, что вы говорите менеджеру пакетов, чтобы он сохранял текущую версию, несмотря ни на что. Это полезно, если более свежая версия работающей в данный момент программы перестает работать после обновления.
Вы можете сделать это через Synaptic или из командной строки через apt/dpkg. Версия командной строки для хранения пакета:
echo package_name hold | dpkg --set-selections
В документации сообщества Ubuntu есть более полное руководство, объясняющее, как прикреплять или хранить пакеты.
Я знаю, что вы можете сделать это в способности. Вы можете сделать это либо в графическом интерфейсе пользователя, выбрав package и нажав m, либо выбрав "Mark manual" в меню "Package", либо используя командную строку:
aptitude install <имя_пакета>& m
Ты можешь использовать 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>
в пакете, который уже установлен, он будет неявно помечен как ручной.