Пометить пакет deb как использованный, чтобы он не предлагался для автоматического удаления

8

В моей системе установлена ​​куча общих библиотек, которые не являются зависимостями какого-то конкретного пакета, но необходимы для библиотек, не управляемых apt, которые я собрал из исходного кода (таких как последние SDL, Allegro, SFML, ...) и другое программное обеспечение построено из исходного кода. Проблема заключается в том, что эти библиотеки рассматриваются APT как неиспользуемые и, следовательно, являются кандидатами на автоматическое удаление, и они смешиваются с законными неиспользуемыми пакетами, которые можно свободно удалять.

Есть ли способ пометить пакеты как используемые, чтобы они не предлагались для автоматического удаления? Моей первой мыслью было создать свой собственный метапакет только для хранения зависимостей (как, например, ubuntu-desktop), но я не знаю, как это сделать.

Борис Борисович
источник

Ответы:

9

Хотя apt-get installпакеты помечаются как установленные, они также выполняют обновление пакетов (если доступно обновление). Правильная программа для изменения автоматически установленных состояний apt-mark.

Применение

Пометить пакет как установленный вручную (чтобы он не был удален apt-get autoremove):

sudo apt-mark manual package1 package2 ... packageN

Чтобы пометить пакет как автоматически установленный (чтобы он был удален, apt-get autoremoveесли от него не зависят пакеты):

sudo apt-mark auto package1 package2 ... packageN

Более подробная информация доступна на странице справочника apt-mark (8) .

Lekensteyn
источник
4

Просто используйте apt-get install:

sudo apt-get install [your-packages]

Это на самом деле не будет устанавливать их. Он просто установит флаг для ручной установки.

жасмин
источник
2

Вам не нужно делать ничего более сложного, чем создавать свои собственные метапакеты.

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

Откройте окно терминала ( Ctrl+ Alt+ T) и запустите:

sudo apt-get install foo

То есть та же команда, которая устанавливает пакеты вручную, помечает их как установленные вручную, поэтому они не будут автоматически удаляться, даже если пакеты, для которых они были изначально установлены как зависимости, сами удаляются.

Элия ​​Каган
источник
@BorisB. Если вы установили пакет вручную , то независимо от того, как вы это сделали, если он впоследствии не был удален или помечен как автоматически установленный, он не будет удален автоматически.
Элия ​​Каган
2
Вы должны установить их как зависимость от чего-то другого. Вы, вероятно, сделали apt-get install yyyи xxxустановили как зависимость. Затем вы удалили yyyи xxxпометили для авторемонта. Теперь вы делаете apt-get install xxx.
Виталий Чьюботару
Я 99% уверен , что я сделал установить эти библиотеки , используя apt-get install(так как я не знаю другого способа их установки), но они по - прежнему предлагаются для автоматического удаления.
Борис Б.
@VitalieCiubotaru Да, это должно быть так. Спасибо.
Борис Б.