apt-get [ опции ] [ команда ] [ пакет … ]

Описание комманды.

apt-get это инструмент командной строки для управления пакетами и может рассматриваться как пользовательский интерфейс к apt .

командами служат: o update o upgrade o dselect-upgrade o dist-upgrade o install пакет1 [пакет2] […] o remove пакет1 [пакет2] […] o source пакет1 [пакет2] […] o check o clean o autoclean update update используется для повторной синхронизации файлов описаний пакетов с их источником. Описания доступных пакетов будут получены из источников, указанных в /etc/apt/sources.list . Например, при использовании архива Debian, эта команда разыскивает и просматривает файлы Packages.gz , таким образом становится доступной информация о новых и обновлённых пакетах. Перед upgrade и dist-upgrade всегда должно выполняться update . Пожалуйста помните, что индикатор прогресса показывает не точную информацию, поскольку размер файлов пакетов заранее не известен. upgrade upgrade используется для установки новейших версий всех установленных пакетов системы из источников, указанных в /etc/apt/sources.list . Будут разысканы новейшие версии установленных в настоящий момент пакетов и произведено обновление; ни в коем случае не будет удалено ни одного установленного пакета или установлено нового пакета, не имеющего уже установленной в системе предыдущей версии. Текущие версии установленных в настоящий момент пакетов, если они не могут быть обновлены новыми версиями без изменения статуса других пакетов, будут оставлены в неизменном виде. Для того, чтобы apt-get узнал о существовании доступных новых версиях пакетов, данной команде должна предшествовать команда update . dselect-upgrade dselect-upgrade используется совместно с традиционным инструментом управления пакетов в Debian GNU/Linux — dselect . dselect-upgrade следует изменениям, которые делает dselect с полем Status доступных пакетов и выполняет действие, необходимое для реализации этого состояния (например, удаление старых и установка новых пакетов). dist-upgrade dist-upgrade , в дополнение выполняет функцию upgrade , а также разумно управляет изменением зависимостей с новыми версиями пакетов; apt-get имеет «умную» систему разрешения конфликтов и она будет в случае необходимости пытаться произвести обновление наиболее важных пакетов за счет менее важных. Файл /etc/apt/sources.list содержит список источников для получения пакетов, из которых будут получены файлы пакетов. install install устанавливает один или более пакетов отмеченных к установке. Каждый пакет — это имя пакета, а не полное имя файла, содержащее этот пакет (например, в системе Debian GNU/Linux, в качестве пакета может быть указано имя ldso , а не ldso_1.9.6-2.deb ). Все пакеты, требуемые заданным пакетом (пакетами) отмеченными к установке, также будут получены и установлены. Файл /etc/apt/sources.list используется для определения местонахождения нужных пакетов. Если к имени пакета добавляется символ переноса (без разделяющего пробела), то заданный пакет будет удален, если он установлен. Эта особенность может быть использована для перекрытия решения, сделанного системой разрешения конфликтов apt-get. Если нет пакетов, совпадающих с заданным выражением и выражение содержит один из символов ‘.’, ‘?’ или ‘*’, то оно рассматривается как шаблон для регулярных выражений POSIX и уже этот шаблон применяется ко всем именам пакетов в базе данных. Любые совпадающие с шаблоном пакеты будут затем установлены (или удалены). Заметим, что к примеру, подстрока ‘lo*’ совпадает с ‘how-lo’ и ‘lowest’. Если это нежелательно, предваряйте их символом ‘^’. remove remove идентична install за исключением того, что пакеты вместо установки удаляются. Если к имени пакета добавляется знак плюс (без разделяющего пробела), то указанные пакеты будут установлены. source source принуждает получать пакеты с исходными текстами. APT проверит доступные пакеты на предмет получения их исходных текстов. Затем он ищет и копирует в текущий каталог новейшую доступную версию этих исходных текстов. Пакеты исходных текстов обслуживаются отдельно от бинарных через ввод строк deb-src или rpm-src в файл /etc/apt/sources.list . Предполагается, что для получения исходных текстов, вы будете использовать источник, отличный от того, из которого вы получаете готовые пакеты. Если задана опция —compile, то пакет с исходными текстами будет скомпилирован в бинарный deb-пакет с помощью утилиты dpkg-buildpackage или, на системах использующих RPM, при помощи rpm -ba будет собран бинарный пакет. Если задана опция —download-only, то пакет с исходными текстами не будет распакован. Заметим, что пакеты с исходными текстами не отслеживаются как бинарные пакеты, они существуют только в текущем каталоге, что очень похоже на простое выкачивание архивов исходных текстов.ta r.gz. check check — это диагностический инструмент; он обновляет кэш пакетов и проверяет пакеты, которые недо-установлены в силу каких-либо причин. clean clean очищает локальное хранилище полученных файлов пакетов. Команда удаляет все, но оставляет файлы из /var/cache/apt/archives/ и /var/cache/apt/archives/partial/ . Когда APT используется как один из методов dselect , clean запускается автоматически. Те, кто не пользуется dselect, для освобождения места на диске могут время от времени использовать apt-get clean . autoclean Как и clean , autoclean очищает локальное хранилище полученных файлов пакетов. Отличие состоит в том, что эта команда удаляет только те файлы пакетов, которые больше не могут быть получены и использованы. Это позволяет обслуживать кэш в течении длительного периода без потери контроля над ним.

Опции

Все опции командной строки могут быть установлены при помощи файла настроек; описания показывают какой элемент настройки надо установить. Для логических опций вы можете перекрыть файл с настройками используя конструкцию вида -f- , —no-f , -f=no или некоторые другие вариации.

-d, —download-only Только выкачивать; файлы пакетов будут только выкачиваться, но не будут распаковываться и устанавливаться. -f, —fix-broken Править; попытка исправить систему с нарушенными зависимостями. Данная опция, когда используется при операциях установки и удаления, может опускать некоторые пакеты, чтобы позволить APT решить проблему. Любой указанный пакет должен полностью исправлять проблему. Данная опция иногда необходима при запуске APT в первый раз; APT сам не позволяет нарушенным зависимостям пакетов существовать в системе. Возможно, что структура зависимостей в системе может быть нарушена и требовать исправления вручную (что обычно достигается использованием dselect или dpkg —remove для удаления некоторых пакетов). Использование данной опции вместе с -m в некоторых ситуациях приведет к выводу сообщения об ошибке. -h, —help Помощь; выдать подсказку и завершить работу. -v, —version Сообщить версию программы. -m, —ignore-missing, —fix-missing Игнорировать отсутствующие пакеты; Если пакеты не могут быть получены или их полная проверка после получения окончилось неудачно (поврежденный файл пакета), то состояние пакета возвращается к предыдущему и результат обрабатывается. Использование этой опции совместно с -f в некоторых случаях может привести к ошибке. Если какой-либо пакет выбирается к установке (например, если он указан в командной строке) и он не может быть получен, то без каких-либо сообщений будет восстановлено исходное состояние. —no-download Запрещает получение пакетов. Лучше всего использовать вместе с —ignore-missing для того, чтобы заставить APT использовать только те.deb файлы, которые уже получены. -q, —quiet Производится вывод годный для протоколирования, в котором опускаются индикаторы хода выполнения задачи. Указание большего числа опций -q приведет к более урезанному выводу, максимально вы можете указать их в два раза. Вы также можете использовать конструкцию -q=# для установки нужного вам количества сообщений вывода, перекрывая файл с настройками. Заметим, что уровень 2 неявно включает -y, вы никогда не должны использовать -qq без модификатора, который запрещает действия, такого как -d, —print-uris или -s, поскольку APT может сделать что-либо неожиданное для вас.
-s, —simulate, —just-print, —dry-run, —recon, —no-act Не выполнять никаких действий; выполняет симуляцию событий, который должны происходить, но которые реально не будут выполнены и не изменят состояние системы. В режиме симуляции на экран будут выведены серии строк, которые будут отображать операции dpkg, Настройка (Conf), Удаление (Remv), Распаковка (Inst). В квадратных скобках будут указаны пакеты, которые недо-установлены по каким-либо причинам вместе со списком (или без него) заключенных в квадратные скобки причин. -y, —yes, —assume-yes Автоматически отвечать «да» в ответ на запрос программы; на все запросы, которые будет выводить программа будет автоматически выдаваться ответ «да». При возникновении нежелательной ситуации, как то: изменения пакета в состоянии удержания или удаления необходимого для работы системы пакета, apt-get будет аварийно завершать свою работу.
-u, —show-upgraded Показать обновленные пакеты; Выдает список всех пакетов, которые были обновлены. -b, —compile, —build Компилировать пакеты исходных текстов после их получения. —ignore-hold Игнорировать состояние удержания. Это заставит apt-get игнорировать состояние удержания в котором находится пакет. Это может быть полезным совместно с командой dist-upgrade для перекрытия большого числа нежелательных пакетов в состоянии удержания.
—no-upgrade Не производить обновлений пакетов; Когда эта опция используется совместно с командой install то no-upgrade предотвратит обновление уже установленных пакетов. —force-yes Принудительное выполнение заданной операции не взирая ни на что. Это опасная опция, которая заставит apt продолжать выполнение операции без каких-либо диалогов с пользователем, даже если возникнет потенциальная возможность ошибки. Она не должна использоваться кроме как в специальных ситуациях. Использование force-yes потенциально способно уничтожить вашу систему!
—print-uris Вместо копирования файлов для установки будут печататься их URI. Каждый URI будет иметь путь, имя файла, размер и ожидаемый хэш md5. Заметим, что выводимое имя файл не всегда совпадает с именем файла на удаленном сайте. Опция также работает и с командой source .
—purge Использовать purge (зачистку) вместо remove (удаления) для всех пакетов, которые будут удалены. —reinstall Переустановить пакеты, которые уже являются новейшими версиями. —list-cleanup Данная опция по умолчанию включена, используйте —no-list-cleanup для ее выключения. Когда apt-get будет автоматически управлять содержимым /var/lib/apt/lists чтобы убедиться, что устаревшие файлы удалены. Выключите данную опцию, если вы часто изменяете ваш список источников. —trivial-only Выполняет только тривиальные операции. Логически это может быть отнесено к —assume-yes, только —assume-yes будет выдавать ответ «да» на любое приглашение, а —trivial-only будет отвечать «нет». —no-remove Если какие-либо пакеты отмечены к удалению, то apt-get немедленно, без вопросов, завершит работу. —diff-only , —tar-only Получить только diff- или tar-файл из архива исходных текстов. -c, —config-file Файл с настройками; Задать файл с настройками. apt-get будет читать файл с настройками по умолчанию и затем указанный файл с настройками.

ФАЙЛЫ

APT (сокращение от Advanced Packaging Tool) - это набор утилит для установки, удаления, обновления, поиска пакетов в Linux, а также для управления репозиториями. APT еще называют пакетным менеджером.

APT использует репозитории пакетов. Список репозиториев для APT хранится в файле /etc/apt/sources.list , а также в директории /etc/apt/sources.list.d/ .

APT используется в дистрибутивах, основанных на Dedian и Ubuntu .

Для управления APT существуют разные утилиты, но самые популярные из них это утилиты командной строки apt-get и apt.

В данной статье мы рассмотрим, как пользоваться командой apt, а также узнаем, чем отличается apt от apt-get.

Чем отличаются apt и apt-get

Кратко ответим на очень популярный вопрос, а в чем разница между командами apt и apt-get?

apt это утилита, которая появилась, как альтернатива apt-get. Она выполняет практически все те же функции, что и apt-get, но с ней проще и понятнее работать.

Например, все команды apt имеют простой синтаксис: apt название_команды . А у apt-get есть дополнительные команды, например, apt-cache . Таким образом, при использовании apt, пользователю не нужно запоминать дополнительные наборы команд.

Помимо упрощения работы с командами, apt нагляднее выводит информацию, вроде бы мелочи, но работать удобнее. Например, apt умеет показывать прогресс бар, а при выполнении apt update можно увидеть сколько пакетов можно обновить.

Стоит отметить, что утилита apt-get более функциональна, чем apt. Но для рядового пользователя apt будет более чем достаточно.

Команда apt

Синтаксис команды apt следующий:

Sudo apt

Обновить список пакетов

sudo apt update

У APT есть список репозиториев, из которых происходит установка пакетов. Список хранится в текстовом файле /etc/apt/sources.list , а также в директории /etc/apt/sources.list.d/ . При выполнении команды apt update , APT проходит по списку репозиториев и из каждого репозитория в списке получает информацию о пакетах, находящихся в репозитории. Вся эта информация сохраняется в системе.

Если выходит новая версия какого-нибудь пакета, то APT не узнает об этом, пока не будет выполнена команда apt update . Поэтому, если установить данный пакет (не выполнив предварительно apt update), то будет установлена та версия пакета, информация о которой хранится в системе в данный момент.

Нужно ли выполнять apt update перед установкой каждого пакета?

Нет, перед установкой каждого пакета apt update конечно же выполнять не следует. Достаточно выполнять apt update периодически. Если вам предстоит установка нескольких пакетов, то сначала можно один раз выполнить apt update , а потом уже устанавливать пакеты.

Обновить установленные пакеты

Чтобы выполнить обновление пакетов, установленных в системе, используется команда:

Sudo apt upgrade

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

Есть еще одна команда для обновления пакетов:

Sudo apt full-upgrade

Данная команда выполняет обновление пакетов, а также удаляет или устанавливает новые пакеты, если это потребуется для разрешения зависимостей.

Установить пакет

Чтобы установить пакет используется команда:

Sudo apt install

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

Для установки нескольких пакетов их имена записываются через пробел:

Sudo apt install

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

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

Sudo apt install =

Удалить пакет

Для удаления, установленного пакета, используется команда:

Sudo apt remove

Удалить пакет и его конфигурационные файлы

sudo apt purge

apt purge работает аналогично apt remove , но удаляет еще и конфигурационные файлы, относящиеся к пакету. Это означает, что если вы установили какую-нибудь программу, настроили ее, а потом удалили командой apt remove , то конфигурационный файл этой программы останется в системе. Если вы теперь установите эту программу снова, то можно будет использовать предыдущий конфигурационный файл, так как он не был удален.

apt purge не удаляет конфигурационные файлы, хранящиеся в вашей домашней директории.

Если вы удалили пакет командой apt remove , то вы можете выполнить apt purge для данного, уже удаленного пакета, чтобы "доудалить" его конфигурационные файлы.

Удалить неиспользуемые пакеты

sudo apt autoremove

Когда вы устанавливаете пакет, то часто устанавливаются дополнительные пакеты, являющиеся его зависимостями. Если теперь вы удалите этот пакет, то зависимости останутся в системе. apt autoremove удаляет эти зависимости, но только те, которые не нужны другим установленным пакетам.

Список пакетов

Команда apt list используется для вывода списка пакетов по какому-то критерию.

Вывести список установленных в системе пакетов:

Apt list --installed

Вывести список пакетов, которые требуют обновления (у которых вышла новая версия):

Apt list --upgradable

Вывести список всех пакетов доступных для вашей системы:

Apt list --all-versions

Поиск пакетов

apt search

Данная команда выполняет поиск указанного слова в названии пакетов и в описании пакетов. Поддерживаются регулярные выражения.

Можно выполнять поиск только по названиям пакетов для этого используется опция --names-only :

Apt search --names-only

Поиск пакета с использованием регулярных выражений:

Apt search --names-only "^python"

Информация о пакете

apt show

Выводит информацию о пакете. Отображается версия, размер, описание, зависимости и другая информация.

Редактирование списка репозиториев

sudo apt edit-sources

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

Таблица аналогов команд apt и apt-get

Команда
apt
Аналог команды
apt-get
Описание
apt install apt-get install Установить пакет
apt remove apt-get remove Удалить пакет
apt purge apt-get purge Удалить пакет и конфигурационные файлы
apt autoremove apt-get autoremove Удалить неиспользуемые пакеты
apt update apt-get update Обновить список пакетов
apt upgrade apt-get upgrade Обновить пакеты
apt full-upgrade apt-get dist-upgrade Обновить пакеты (удалить и установить новые, если требуется)
apt list Примерный аналог:
dpkg-query --list
Список пакетов
apt search apt-cache search Поиск пакета
apt show apt-cache show Информация о пакете

Автор: Craciun Dan
Дата публикации: September 20th, 2010
Перевод: Н.Ромоданов
Дата перевода: декабрь 2010 г.

В настоящем руководстве представлены наиболее популярные и полезные примеры использования команд APT и DPKG, которые можно применить как в Ubuntu, так и в Debian (а также в системах, производных от них). Явно указано, в каких случаях требуются привилегии суперпользователя, а для тех команд, где ничего не указано — команду может выполнить обычный пользователь. Если вы используете Ubuntu, то для получения привилегии суперпользователя, наберите перед командой префикс sudo (и введите свой пароль пользователя); в Debian наберите команду su , введите пароль, а затем вводите команды, которые описаны ниже.

dpkg -L package_name

Эта команда покажет, какие файлы для пакета с именем package_name установлены на вашем компьютере. Обратите внимание, что эта команда работает только для уже установленных пакетов. Пример:

Embryo@debian:~$ dpkg -L vorbis-tools /. /usr /usr/bin /usr/bin/ogg123

apt-get build-dep package_name

(необходимы привилегии root)

Это очень полезная команда, с ее помощью устанавливаются все библиотеки, необходимые для разработки приложения. Так что если вам нужно скомпилировать новую версию программы, отличающуюся от той, что есть в репозитарии, для получения зависимостей используйте эту команду. Обратите внимание, что будут установлены библиотеки, необходимые для текущей версии приложения, которая взята из репозитариев, поэтому вам, возможно, потребуется установить дополнительные библиотеки. Но для большинства приложений этого не требуется. Пример:

Apt-get build-dep wesnoth

С помощью этой команды будут установлены все пакеты разработчика, необходимые для приложения Wesnoth. Имейте в виду, что у вас должен быть прописан доступ к репозитариям исходных кодов (в Ubuntu по умолчанию доступ к ним есть).

apt-get clean (и apt-get autoclean)

(необходимы привилегии root)

С помощью этой команды удаляются все архивы, установленные в вашей системе. Всякий раз, когда вы устанавливаете приложение, оно будет загружено и его пакет DEB будет помещен в директорий /var/cache/apt/archives/. Данная команда удаляет эти пакеты и освобождает место.

Apt-get clean apt-get autoclean

Относительно apt-get autoclean: с помощью этой команды удаляются только те архивы, которых уже нет в репозитариях, и сохраняются те, которые в данный момент в репозитариях присутствуют. Эта команда полезна, если вы хотите избавиться от старых архивов, которые были обновлены, но обновленные архивы хотите на всякий случай сохранить. Для того, чтобы увидеть, сколько места занимают архивы, используйте команду du -h (аргумент -h указывает, что результат нужно выдать в формате, удобном для чтения):

Du -h /var/cache/apt/archives/

apt-cache show package_name

Будет отображена информация о любом пакете package_name , который присутствует в репозитарии. Вам достаточно набрать только название пакета, а не указывать название и версию. Пример:

Embryo@debian:~$ apt-cache show vorbis-tools Package: vorbis-tools Priority: optional Section: sound Installed-Size: 580 ...

apt-cache search pattern

Будет произведен поиск и будет выдан список всех пакетов, у которых в имени или в описании содержится шаблон поиска (pattern ). Вы можете перенаправить этот список в grep для получения результата в более удобном варианте:

Embryo@debian:~$ apt-cache search gnome terminal|grep terminal gmfsk - MFSK, RTTY and other digital mode terminal for HF/amateur radio gnome-terminal-data - Data files for the GNOME terminal emulator gnome-terminal - The GNOME 2 terminal emulator application

apt-get update && apt-get upgrade

(необходимы привилегии root)

Это одностроковая команда, которая обновит список ваших пакетов и выполнит обновление вашей системы. Поскольку для ее выполнения требуются привилегии root, то если ваш дистрибутив — Ubuntu, используйте sudo apt-get update && sudo apt-get upgrade . Обратите внимание, что вторая команда (после двойного амперсанда) выполняется только в случае, если выполнение первой команды было успешным, поэтому, если по какой-нибудь причине списка обновлений получить не удалось, вторая команда выполняться не будет. Если вы используете тестовый или бета-релиз, используйте вместо нее следующую команду:

Sudo apt-get update && sudo apt-get dist-upgrade

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

dpkg --get-selections

Эта команда выведет список всех пакетов, установленных в системе с помощью менеджера пакетов (более точно, это те пакеты, которые были выбраны в менеджере пакетов — прим.пер. ). Пример:

Embryo@debian:~$ dpkg --get-selections acpi-support-base install acpid install adduser install akregator install ...

dpkg -S filename

Будет найден по образцу filename список файлов, имеющихся в установленных пакетах. Пример:

Embryo@debian:~$ dpkg -S oggenc vorbis-tools: /usr/share/man/man1/oggenc.1.gz vorbis-tools: /usr/bin/oggenc embryo@debian:~$

apt-get autoremove

(необходимы привилегии root)

С помощью этой команды удаляются ненужные пакеты (например, одиночные пакеты), которые не используются никаким из пакетов, в текущий момент установленных в системе. Такая ситуация часто возникает после удаления определенного приложения, когда его зависимости не удаляются и по-прежнему остаются в системе. Используйте эту команду, чтобы избавиться от таких пакетов.

apt-cache dump

Эта команда выводит список всех пакетов, находящихся в кэше.

apt-cache depends package_name

Очень полезная команда, которая перечисляет все зависимости, которые есть у пакета, в том числе и рекомендуемые пакеты.

Embryo@debian:~$ apt-cache depends vorbis-tools vorbis-tools Depends: libao2 Depends: libc6 Depends: libcurl3-gnutls ...

apt-cache rdepends package_name

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

Apt-cache rdepends mplayer

apt-cache policy package_name

Эта команда выдаст список репозитариев, в которых находится пакет. В Ubuntu, есть четыре таких репозитария: main, restricted, universe и multiverse. В Debian имеются репозитари main, contrib и non-free. Для каждого пакета есть определенная политика его использования и она зависит от того, в каком из указанных репозитариев находится пакет.

Apt-cache policy amarok apt-cache policy sun-java6-jre

apt-cache showsrc package_name

Будет отображаться информация об исходном коде пакета.

apt-get -f install

(необходимы привилегии root)

Будет сделана попытка исправить нарушенные зависимости. Как правило, эта команда очень полезна в случае, если вы пытаетесь вручную установить пакет DEB, не устанавливая первоначально его зависимости. Выполните команду apt-get -f install , а затем снова попытайтесь установить пакет.

apt-cdrom add

(необходимы привилегии root)

Команда добавит CD-ROM к числу источников, откуда можно получать пакеты, так что вы сможете устанавливать с него пакеты. Эта команда особенно полезна, если у вас есть образы ISO, которые вы не хотите записывать на компакт-диск. Для того, чтобы сканировать образы ISO, используйте команду:

Apt-cdrom -d=/cdrom add

В результате в директории /cdrom будет смонтирован образ ISO, а затем его содержимое будет добавлено в sources.list. Обратите внимание, что директорий /cdrom должен быть пустым. Для этого вы можете использовать любой пустой директорий:

Apt-cdrom -d=/home/USER/mydir

dpkg -c local_file.deb

Аргумент -c указывает команде dpkg выдать список содержимого пакета DEB. Пример:

Embryo@debian:~$ dpkg -c google-chrome-stable_current_i386.deb ... drwxr-xr-x root/root 0 2010-07-30 23:54 ./usr/share/man/man1/ -rwxr-xr-x root/root 3098 2010-07-30 23:54 ./usr/share/man/man1/google-chrome.1 lrwxrwxrwx root/root 0 2010-07-30 23:54 ./usr/bin/google-chrome -> /opt/google/chrome/google-chrome

dpkg -f local_file.deb

Эта команда покажет управляющую информацию бинарного пакета. Из нее менеджер пакетов получает данные о зависимостях, о том, кто осуществляет поддержку пакета, о домашней странице пакета, общее описание, а также многое другое.

Advanced Packaging Tool – набор утилит для управления программными пакетами в операционных системах основанных на Debian. APT предоставляет дружественную надстройку над DPKG и позволяет:

    Устанавливать, удалять и обновлять пакеты

    Решать зависимости

    Искать пакеты по заданным критериям

    Просматривать подробную информацию о пакете

    Манипулировать ключами от репозиториев

APT является одной из базовых программ и включена в состав Ubuntu.

Настройки

Все файлы настроек APT хранятся в директории /etc/apt .

apt.conf

/etc/apt/apt.conf – основной файл настроек, используемый всеми инструментами из состава APT. Описание всех возможных настроек и опций можно прочитать в документации к нему:

man apt.conf

apt.conf.d

Директория содержащая в себе файлы конфигурации, аналогичные по синтаксису. При помощи этой директории можно быстро и удобно манипулировать настройками APT добавляя или удаляя подготовленные файлы с настройками.

auth.conf

sources.list

sources.list.d

Директория с файлами репозиторий, по назначению аналогичных sources.list. Каждый репозиторий описывается в отдельном файле.

Использование

В APT входит несколько утилит, выполняющих отдельные задачи.

Начиная с версии Ubuntu 16.04 доступна новая утилита apt , которая содержит наиболее часто используемые команды из apt-get и apt-cache . Утилита apt предназначена для пользователей, в то время как apt-get можно рассматривать как как инструмент более низкого уровня.

apt-get

apt-get это утилита управления пакетами. apt-get требует прав суперпользователя для своей работы.

Основные команды:

    Update - Обновить информацию о пакетах, содержащихся в репозиториях.

    Install foo - Установить пакет foo. Скачивание, установка и настройка происходят автоматически. Если для настройки пакета foo нужны дополнительные сведения, будет показан запрос к пользователю.

    Upgrade - Обновление пакетов, для которых в репозитории доступны новые версии.

    Dist-upgrade - Обновление пакетов, требующих разрешения зависимостей (установка дополнительных или удаление конфликтующих пакетов).

    Remove foo - Удаление пакета foo из системы.

    Purge foo - Удаление пакета foo и очистка системы от его конфигурационных файлов. Файлы настроек в домашних каталогах пользователей удалены не будут .

    Autoremove - Удаление пакета, который более не нужен в системе. Используется для очистки системы от ненужных пакетов. Факт, что пакет более не нужен, определяется следующим образом: если пакет был установлен не сам по себе, а как зависимость для другого пакета, который впоследствии был удалён, значит этот пакет тоже уже не нужен в системе.

    Source foo - Получение исходных текстов пакета foo.

Долгое время меня глодало незнание того, как сделать некоторые элементарные вещи в дебиановских менеджерах пакетов, но, как часто бывает, спросить рядом было не у кого, а до написания куда-либо руки не доходили. И вот наконец вопросы вызрели и я написал свой вопрос в дебиановскую рассылку . Естественно оказалось что пропустил что-то очевидное, но и узнал много неочевидных полезностей, посему решил набросать шпаргалку, авось кому пригодится.

Краткая справка Debian администратора

Основное и общеизвестное
Получение информации о новых/обновлённых пакетах
sudo aptitude update
Обновление
sudo aptitude safe-upgrade
Поиск пакета по именам пакетов
aptitude search key_word
Поиск пакета по точному названию
aptitude search "^name$"
Поиск по описанию
aptitude search "?description("key_word")"
Информация о пакете
aptitude show package_name
Установка
sudo aptitude install package_name
Удаление
sudo aptitude remove package_name
Полное удаление (вместе с конфигами)
sudo aptitude purge package_name
Очистить кэш загруженных пакетов (освободить место)
aptitude autoclean # удалятся только пакеты неактуальных версий aptitude clean # очистится весь кэш
Установка отдельно скачанного/созданного пакета (для создания пакета из сторонних исходников нужно использовать утилиту checkinstall с флагом -D)
sudo dpkg -i /path/to/package.deb
Для получения доп информации
man aptitude sudo aptitude install aptitude-doc-en
и смотрим документацию (/usr/share/doc/aptitude/html/en/index.html), кому быструю справку по поисковым шаблонам, тому сюда - /usr/share/doc/aptitude/html/en/ch02s04.html. Если лень ставить доку, то в сети она есть .
Вводная на Debian Wiki: wiki.debian.org/Aptitude
А теперь то что не очевидно или требует полного прочтения документации
1. Как после update посмотреть какие пакеты будут обновлены?
aptitude search ?upgradable
также можно юзать (если поставить)
sudo daptup
но после его установки точно также будет себя вести и обычный update

2. Как узнать что изменилось в пакетах которые будут обновлены?
Можно пробовать
sudo aptitude changelog package_name
для каждого пакета.
Но лучше поставить apt-listchanges, тогда перед любой установкой обновлений будет показан список изменений, по умолчанию настройки не очень удобные, поэтому лучше перенастроить под себя, например, выбрать формат вывода (пока использую текст, при больших обновлениях наверно pager лучше), не слать писем, спрашивать подтверждения, выводить всю информацию. Для этого нужно запустить
sudo dpkg-reconfigure apt-listchanges
3. Что делать если обновление что-то поломало и нужно откатиться?
Отката нет, можно попробовать найти предыдущую версию пакета
sudo aptitude version package_name
и установить её
sudo aptitude install package_name=version
4. Как найти все пакеты установленные вручную?
есть вариант команды (aptitude search "~i!~M"), но к сожалению он не даёт желаемого результата, так что вопрос остаётся открытым, есть куча способов основанных на анализе логов
/var/log/aptitude (+ ротированные куски) /var/log/installer/initial-status.gz /var/log/dpkg.log (+ ротированные куски)
но простого и готового решения нет, да информация теоретически может быть потеряна при ротациях, нужно конфигурить

5. Как посмотреть список файлов в пакете?
если пакет установлен
dpkg -L package_name
для любых пакетов поставить apt-file и
apt-file list package_name
6. Как посмотреть какому пакету принадлежит файл?
dpkg -S file_name
7. Как удалить все пакеты, где есть key в названии пакета?
sudo aptitude purge ~ikey
8. Как удалить оставшиеся конфиги от удалённых пакетов?
sudo aptitude purge ~c
9. Как найти пакет пакет, в котором содержится файл lib.so:
apt-file search lib.so
10. Как сконвертировать rpm пакет в deb?
alien --to-deb /path/to/file.rpm
11. Как найти список установленных ядер?
dpkg --list linux-* | grep ii
12. Как установить пакет из testing или experimental?
На эту тему нужно писать отдельно (например так), но если кратко, то команды для этого есть
sudo aptitude -t testing package_name
или
sudo aptitude package_name/testing
13. Как удалить метапакет, но оставить одну из зависимостей?
придётся почитать документацию про ключ unmarkauto или глянуть сюда .

14. Как узнать что попало в файловую систему мимо системы управления пакетами?
Есть утилита cruft, хотя вопрос интерпретации результатов (файла report) пока открыт
sudo cruft -d / -r report --ignore /home --ignore /var --ignore /tmp
15. Какие есть дополнительные репозитории?
Debian - wiki.debian.org/UnofficialRepositories
Ubuntu - множество всяких