APT это программа, написанная на C++, исходные коды которой расположены главным образом в разделяемой (общей) библиотеке libapt-pkg
. Использование разделяемой библиотеки облегчает создание пользовательских интерфейсов, так как код, содержащийся в библиотеке, можно быстро использовать повторно. Исторически, apt-get
была создана как тестовый фронтенд для libapt-pkg
, но её успех маскирует изначальное предназначение.
6.5.1. программа aptitude
aptitude
- это интерактивная программа, она также может быть использована в псевдографическом режиме в терминале. Вы можете посмотреть список установленных и доступных пакетов, прочитать всю доступную о них информацию, и выбрать пакеты для установки или удаления. Программа разработана специально для использования администраторами, поэтому её поведение по умолчанию разработано так, чтобы быть гораздо более интеллектуальным, чем apt-get
, и его интерфейс намного проще понять.
Сразу после старта программа aptitude
показывает список пакетов, отсортированных по состоянию (установлены, не установлены или установлены, но недоступны на зеркалах — в других разделах отображаются задачи, виртуальные пакеты и новые пакеты, недавно появившиеся на зеркалах). Для облегчения тематического просмотра доступны другие виды. Во всех случаях aptitude
отображает список скомбинированных категорий и пакетов на экране. Категории организованы в виде древовидной структуры, ветви которой можно соответственно развернуть или закрыть с помощью кнопки Enter, [ и ]. Клавиши + используется для пометки пакета к установке, - помечает его к удалению и _ - начисто удалить пакет (удалить не только пакет, но и конфигурационные и др. изменяемые файлы). (обратите внимание, что эти ключи также можно использовать для категорий, и в этом случае соответствующие действия будут применены ко всем пакетам категории). Например - если помечен подраздел к удалению, то он будет удален весь - удалятся все файлы, расположенные внутри него (будьте осторожны!). u - обновит перечень доступных пакетов (с зеркал) и Shift+u подготавливает к глобальному обновлению системы. g переключается в режим показа запрошенных изменений (нажав повторно клавишу g вы дадите программе разрешение на установку-замену и т.д., что вы ей задали). q - выход из просмотра (и из программы). Если после первого нажатия клавиши "g" и показа вам - что программа намерена установить-удалить - вы решите, что не согласны и хотите что-то изменить- нажмите тоже клавишу "q" и вы выйдете в предыдущий экран и можете поправить то, что вы хотели. Когда вы находитесь в первоначальном экране просмотра (как при старте) - с помощью клавиши "q" вы выйдете из программы aptitude
.
Для поиска пакета нажмите / и, в открывшемся окошке, введите шаблон поиска. Этот шаблон соответствует имени пакета, но также может применяться к описанию (если ему предшествует ~d
), разделу (с ~s
) или другим характеристикам, подробно описанным в документации. По тем же шаблонам можно фильтровать список отображаемых пакетов: введите l клавишу (как в limit) и завершите шаблон вводом enter.
Управление "автоматическим флагом" (“automatic flag”) в пакетах Debian-а (смотри
Раздел 6.2.7, «Трекинг автоматически устанавливаемых пакетов») легче с
aptitude
. Можно при просмотре списка установленных пакетов пометить пакет с "автоматическим флагом" (“automatic flag”) - комбинацией клавиш
Shift+
m. Удалить эти пометки - с клавишей
m. Пакеты, с установленным "автоматическим флагом" (“Automatic packages”) показаны с отметкой “A” слева на экране напротив имени пакета. Эта функция также предлагает простой способ визуализации пакетов, используемых на компьютере, без всех библиотек и зависимостей, которые вам на самом деле не нужны. Соответствующий шаблон может быть использован с
l (чтобы активировать режим фильтрации) и
~i!~M
. А эта функция позволит вам посмотреть установленные пакеты (
~i
), а те что не промаркированы как автоматически поставленные смотрим так (
!~M
).
6.5.1.1. Управление Рекомендациями, Предложениями и Задачами
Другая интересная особенность программы aptitude
заключается в том, что она учитывает рекомендации между пакетами, но при этом дает пользователям возможность не устанавливать их в каждом конкретном случае. Например, пакет gnome рекомендует программу gdebi (один из нескольких рекомендованных пакетов). Когда вы выбираете предшествующий (чуть выше упомянутый) пакет для установки, последний (то есть рекомендованный) пакет будет также выбран (и маркироваться как "автоматически установленный", если ранее он не был установлен в системе). Нажав клавишу g станет очевидно: пакет gdebi появился на экране в списке отложенных действий, при этом данный пакет помечен программой как "автоматически установленный" - для удовлетворения зависимостей (памятка - выйти из этого предварительно просмотра надо клавишей "q"). Однако, ты можешь решить не устанавливать этот (второй) пакет (и отметить это через "-" - то есть снять метку "+") до подтверждения операции (до повторного нажатия клавиши "g").
Запомни, что эта рекомендованная возможность отслеживания не применяется к обновлениям (upgrade). Для примера, если новая версия gnome рекомендует пакет, который ранее не рекомендовала, пакет не будет отмечен к установке. Однако это будет показано на предварительном просмотре на экране при обновлении и администратор сможет сам отметить данный пакет к установке (если в нем есть необходимость).
Предложения между пакетами также учитываются, но с учётом их особенного положения. Для примера, программа gnome предлагает empathy, последний будет показан на экране в итоговом предварительном просмотре планируемых действий программы (в разделе, где пакеты предлагают другие пакеты). Этот вывод на экран просматривает администратор и решает - надо ли брать предложение в расчёт или нет. Это есть только предложение, а не зависимость и рекомендация, пакет не будет выбираться автоматически — этот выбор нуждается в ручном вмешательстве пользователя (таким образом, пакет не будет маркирован как "автоматически установленный").
В том же духе, вспомните aptitude
разумно использует концепцию задачи. Поскольку задачи отображаются в виде категорий на экранах списков пакетов, вы можете либо выбрать полную задачу для установки или удаления, либо просмотреть список пакетов, включенных в задачу, чтобы выбрать меньшее подмножество.
6.5.1.2. Улучшенные алгоритмы решения
В заключение этого раздела отметим, что aptitude
имеет более сложные алгоритмы по сравнению с apt-get
когда дело доходит до разрешения сложных ситуаций. Когда запрашивается набор действий и когда эти комбинированные действия могут привести к бессвязной системе, aptitude
оценивает несколько возможных сценариев и представляет их в порядке убывания значимости. Однако эти алгоритмы не являются безотказными. К счастью, всегда есть возможность вручную выбрать действия для выполнения. Когда выбранные в данный момент действия приводят к противоречиям, в верхней части экрана указывается количество «сломанных» пакетов (и вы можете напрямую перейти к этим пакетам, нажав b). После этого можно вручную построить решение для найденных проблем. В частности, вы можете получить доступ к различным доступным версиям, просто выбрав пакет с помощью Enter. Если выбор одной из этих версий решит проблему, не стесняйтесь использовать эту функцию. Когда количество сломанных пакетов снизится до нуля, вы можете смело перейти к экрану сводки ожидающих действий для последней проверки перед их применением.
6.5.2. Программа synaptic
Программа synaptic
— это графический менеджер пакетов для Debian с понятным и эффективным графическим интерфейсом, основанным на GTK+/GNOME. Множество готовых к использованию фильтров обеспечивают быстрый доступ к новым доступным пакетам, установленным пакетам, обновляемым пакетам, устаревшим пакетам и так далее. Просматривая эти списки, вы можете выбрать операции, которые необходимо выполнить с пакетами (установка, обновление, удаление, очистка); эти операции не выполняются сразу, а заносятся в список задач. Один щелчок по кнопке затем подтверждает операции, и они выполняются за один раз.