Использование APT. Команды apt и apt-get. Apt-get. Управление пакетами в Ubuntu

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 Информация о пакете

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

В этой статье мы разберем как удалить deb пакет Ubuntu, при чем удалить чисто, так, чтобы после него не осталось следов в системе. Также поговорим о полном удалении PPA, поскольку много пакетов, которых нет в официальных репозиториях мы устанавливаем из PPA.

Самый простой способ удалить пакет Ubuntu, это воспользоватся одной из графических утилит, поставляемых специально для этого, например Synaptic или Центр приложений Ubuntu. По сути это делается в пару кликов. Сначала рассмотрим порядок действий в Центре приложений Ubuntu.

Запустить центр приложений вы можете из панели значков Unity:

Список всех установленных пакетов находится на вкладке Установлено, здесь приложения рассортированы по категориям:

Чтобы удалить пакет Ubuntu, достаточно кликнуть по нему левой кнопкой мыши, и когда появляться доступные действия нажать кнопку Удалить :

Для завершения удаления нужно будет ввести пароль.

Пакет удален, но не совсем так, как нам хотелось бы. Но об этом позже.

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

sudo apt install synaptic

Запустить программу можно через терминал, выполнив команду:

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

Удалить deb ubuntu вы можете просто нажав правой кнопкой мыши и в контекстном меню на нужном пакете и выбрав отметить для удаления или отметить для полного удаления :

Программа покажет, какие еще пакеты будут удалены, это те пакеты, которые зависят от нашего пакета:

Теперь, чтобы завершить удаление, осталось нажать кнопку Применить :

Теперь программа покажет какие пакеты будут удалены. И пойдет процесс удаления:

Просто удаление и полное удаление отличается только тем, что при полном удалении удаляются конфигурационные файлы. Но проблема этих инструментов в том, что пакеты установленные как зависимости и рекомендованные к программе не удаляются и остаются в системе. Такое поведение наблюдается как в Synaptic, так и в Центре приложений Ubuntu. Поэтому мы переходим к описанию самого гибкого способа - удаление пакетов Ubuntu в терминале.

Как удалить пакет Ubuntu в терминале

В новых версиях Ubuntu для управления пакетами, а в том числе и удаления можно использовать новый менеджер пакетов - apt. Команда удаления выглядит таким образом:

sudo apt remove имя_пакета

Будет выполнено полное удаление пакета, включая конфигурационные файлы и зависимости, только рекомендованные программы останутся.

Если вы хотите использовать apt-get чтобы удалить deb ubuntu, то порядок действий немного другой. Для обычного удаления пакета выполните:

sudo apt-get remove имя_пакета

Для удаления пакета вместе с его конфигурационными файлами, выполните:

sudo apt-get purge имя_пакета

А чтобы, также удалить зависимости, установленные вместе с пакетом, нужно после одной из предыдущих команд выполнить:

sudo apt-get autoremove

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

Ну с основами разобрались, теперь перейдем к более сложным ситуациям. Что если вы устанавливали программу из deb файла и теперь не знаете точно, как называется ее пакет, чтобы удалить?

Это очень просто узнать, например по исполняемому файлу, допустим исполняемый файл программы TimeShift находится по адресу /usr/bin/timeshift, теперь узнаем ее пакет:

sudo dpkg -S /usr/bin/timeshift

timeshift: /usr/bin/timeshift

Как видите, пакет так и называется - timeshift. Теперь можно удалить программу Ubuntu, одним из выше описанных способов.

Очень часто мы устанавливаем недостающее нам программное обеспечение из PPA, но не все эти пакеты нужны нам на протяжении долгого времени, а при обновлении системы, могут даже вызвать ошибки. Так как же удалить все пакеты установленные из PPA? Для этого есть специальная утилита: ppa-purge.

Если она еще не установлена, устанавливаем командой:

sudo apt install ppa-purge

Теперь, чтобы удалить все пакеты установленные из определенного ppa используйте:

sudo ppa-purge -i ppa:ppaowner/ppaname

ppa:ppaowner/ppaname - обычно в таком формате записываются все PPA. Протокол:владелец/имя.

Узнать список репозиториев можно в программе источники приложений:

Такой командой можно одним махом удалить пакеты ubuntu, установленные из ppa:

find /etc/apt/sources.list.d -type f -name "*.list" -print0 | \
while read -d $"\0" file; do awk -F/ "/deb / && /ppa\.launchpad\.net/ {print "sudo ppa-purge ppa:"$4"/"$5}" "$file"; done

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

Но все же способ есть, обычно, разработчики в файле сценариев makefile, кроме цели install реализуют цель uninstall, которая дозволяет выполнить обратное действие.

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 будет читать файл с настройками по умолчанию и затем указанный файл с настройками.

ФАЙЛЫ

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

Краткая справка 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 - множество всяких

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.