Перейти к основному содержимому
Утилита управления пакетами apt

Утилита управления пакетами apt

к сведению

Начало работы с apt

Перед началом работы с apt рекомендуем выполнить команду apt update, чтобы обновить список доступных пакетов. Для каждого источника будут загружены файлы Packages, Sources, Translation-язык.

Установка и удаление пакетов

apt install <пакет>установить пакет с необходимыми зависимостями
apt remove <пакет>удалить пакет
apt autoremove <пакет>удалить пакет и его зависимости
apt purge <пакет>удалить пакет и конфигурационные файлы
apt autopurge <пакет>удалить пакет, конфигурационные файлы и зависимости

Установка и удаление одной командой

Оболочки apt могут установить одни пакеты и удалить другие одной командой, используя специальные суффиксы - и + для apt install и apt remove соответственно.

apt install <пакет1> <пакет2>-установить пакет1 и удалить пакет2
apt remove <пакет1>+ <пакет2>удалить пакет2, но оставить пакет1

Этим способом можно предотвращать установку пакетов, которые по умолчанию были бы включены в установку — например, зависимости Recommends.

Установка пакетов на несколько устройств

примечание
  1. Запишите список установленных на шаблонном устройстве пакетов в файл pkg-list.
dpkg --get-selections >pkg-list
  1. Перерешлите pkg-list на другие устройства.

  2. Обновите базу известных пакетов для dpkg.

avail=`mktemp`
apt-cache dumpavail > "$avail"
dpkg --merge-avail "$avail"
rm -f "$avail"
  1. Загрузите список пакетов, которые нужно установить.
dpkg --set-selections < pkg-list
  1. Установите пакеты, выбранные с помощью dpkg.
apt-get dselect-upgrade

Переустановка пакета

Как правило, apt отказывается переустанавливать пакет, если он уже установлен, но можно воспользоваться опцией --reinstall. Следующая команда переустановит пакет с разрешением зависимостей, но не восстановит конфигурационные файлы.

apt --reinstall install <пакет>

Восстановление пакета

Следующая команда во время установки предложит отменить изменения в конфигурационном файле или восстановить удалённый файл.

apt --reinstall -o Dpkg::Options::="--force-confask,confmiss" install <пакет>

Приведенная команда будет спрашивать для каждого файла:

  • оставить ли текущую версию;
  • восстановить ли оригинальную версию;
  • показать ли изменения.

Некоторые пакеты создают конфигурационные файлы в процессе инициализации путём копирования из других файлов или генерации скриптом.

В таких случаях приведенные выше команды работать не будут.

Выбор версии пакета

Если в файле /etc/apt/sources.list указано несколько источников, можно выбрать версию пакета для установки.

apt install <пакет>=<версия>установить пакет нужной версии из доступного источника
apt install -t <релиз> <пакет>установить пакет из указанной версии релиза

Вторая команда актуальна для установки предыдущих или следующих версий (из тестинга/сида), при условии, что релиз закреплен в apt.conf.d.

Установка из дополнительного источника

Чтобы установить пакет из дополнительного репозитория в перечне sources.list, например, testing, воспользуйтесь командой:

apt install <пакет>/testing

Установке могут помешать конфликтующие зависимости. Их можно разрешить с использованием нужного репозитория, добавив параметр -t testing.

Установка без репозитория

Следующая команда установит пакет и связанные с ним зависимости без репозитория.

apt install ./путь-к-пакету.deb

Условия:

  • необходимые зависимости должны быть доступны в репозитории;
  • пакет должен быть передан в виде .deb-файла.

Скачивание пакетов без установки

apt download <пакет>скачать .deb-пакет в текущую директорию
apt source --download-only <пакет>скачать исходные коды программы без распаковки

Во втором случае будут скачаны пакеты .dxc,.orig.tar.gz, .debian.tar.xz.

Настройка зависимостей

Можно отмечать пакеты, которые не нужны вне зависимостей. Такие пакеты будут удалены при удалении основного пакета. И наоборот: автоматически установленный пакет можно отметить, как отслеживаемый вручную.

apt-mark auto <пакет>отметить пакет автоматическим
apt-mark manual <пакет>отметить пакет отслеживаемым вручную

Поиск зависимостей

apt-rdepends <пакет>найти зависимости, которые нужны пакету
apt rdepends <пакет>найти пакеты, которым нужна эта зависимость
dpkg -L <пакет>найти файлы, установленные пакетом
dpkg -S <файл>найти пакет, которому принадлежит файл
cruftнайти файлы, не принадлежащие ни одному пакету

Примечание:

  • apt rdepends встроен в пакет apt;

  • apt-rdepends — это отдельная утилита, которая может требовать отдельной установки.

  • cruft — это команда, встроенная в пакет cruft-ng.

Фильтрация пакетов шаблонами запросов

Регулярные выражения позволяют отфильтровать пакеты по нужным критериями и совершать операции только над ними. Например:

apt remove ?garbageудалить зависимости, которые больше не нужны
apt purge ?config-filesудалить пакеты, в которых остались только файлы конфигурации

Конструкция вида ?garbage или ?config-files, которая идет после команды, — это регулярное выражение, которое распознается apt в соответствии с правилами, описанными в руководствах:

  • man apt-patterns(7)
  • man glob(7)

Примеры шаблонов

Шаблоны можно комбинировать в более сложные выражения:?and(шаблон, шаблон)

?architecture(архитектура)пакеты с указанной архитектурой
?automaticавтоматически установленные пакеты
?brokenпакеты с нарушенными зависимостями
?config-filesпакеты, которые имеют только остаточные файлы конфигурации
?essentialпакеты со значением Essential: yes
?exact-name(пакет)пакеты с указанным именем
?installedустановленные пакеты
?garbageпакеты, которые можно удалить автоматически
?name(регулярное выражение)пакеты с именем, соответствующим регулярному выражению
?obsoleteпакеты, которых больше нет в репозитории
?upgradableпакеты, которые можно обновить
?virtualпакеты, лежащие ссылкой в архиве из-за имеющихся зависимостей