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

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

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

8
задан 12 June 2012 в 13:27

3 ответа

Несмотря на то, что 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) .

0
ответ дан 12 June 2012 в 13:27

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

sudo apt-get install [your-packages]

На самом деле он их не установит. Он просто установит флаг на ручную установку.

0
ответ дан 12 June 2012 в 13:27

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

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

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

sudo apt-get install foo

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

0
ответ дан 12 June 2012 в 13:27

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

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