Перейти к основному содержимому
Утилита управления пакетами 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 <файл>найти пакет, которому принадлежит файл

Примечание:

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

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

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

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

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

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

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

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

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