В современных системах на базе Linux
огромное число общих
ресурсов, которыми пользуются сразу несколько программ:
разделяемых библиотек, содержащих стандартные функции,
исполняемых файлов, сценариев и стандартных утилит и т. д.
Удаление или изменение версии одного из составляющих систему
компонентов может повлечь неработоспособность других, связанных
с ним компонентов, или даже вывести из строя всю систему. В
контексте системного администрирования проблемы такого рода
называют нарушением целостности системы. Задача администратора — обеспечить наличие в системе
согласованных версий всех необходимых программных компонентов
(обеспечение целостности системы).
Для установки, удаления и обновления программ и поддержания
целостности системы в Linux
в первую очередь стали
использоваться менеджеры пакетов (такие,
как RPM в дистрибутивах RedHat
или
dpkg в Debian GNU/Linux
). С точки зрения менеджера пакетов программное обеспечение представляет собой набор компонентов — программных
ых
пакетов. Такие компоненты содержат в себе
набор исполняемых программ и вспомогательных файлов, необходимых
для корректной работы ПО. Менеджеры пакетов облегчают установку
программ: они позволяют проверить наличие необходимых для работы
устанавливаемой программы компонент подходящей версии
непосредственно в момент установки, а также производят
необходимые процедуры для регистрации программы во всех
операционных средах пользователя. Сразу после установки
программа оказывается доступна пользователю из командной строки
и появляется в меню всех графических оболочек.
Благодаря менеджерам пакетов, пользователю Linux
обычно
не требуется непосредственно обращаться к установочным
процедурам отдельных программ или непосредственно работать с
каталогами, в которых установлены исполняемые файлы и
компоненты программ (обычно это /usr/bin
, /usr/share/
) — всю работу делает менеджер пакетов. Поэтому
установку, обновление и удаление программ в имя_пакета
Linux
обычно
называют управлением пакетами.
Часто компоненты, используемые различными программами, выделяют в отдельные пакеты и помечают, что для работы ПО, предоставляемого пакетом A, необходимо установить пакет B. В таком случае говорят, что пакет A зависит от пакета B или что между пакетами A и B существует зависимость.
Отслеживание зависимостей между такими пакетами представляет собой серьёзную задачу для любого дистрибутива — некоторые компоненты могут быть взаимозаменяемыми: может обнаружиться несколько пакетов, предлагающих затребованный ресурс.
Задача контроля целостности и непротиворечивости установленного в системе ПО ещё сложнее. Представим, что некие программы A и B требуют наличия в системе компоненты C версии 1.0. Обновление версии пакета A, требующее обновления компоненты C до новой, использующей новый интерфейс доступа, версии (скажем, до версии 2.0), влечёт за собой обязательное обновление и программы B.
Однако менеджеры пакетов оказались неспособны предотвратить все возможные коллизии при установке или удалении программ, а тем более эффективно устранить нарушения целостности системы. Особенно сильно этот недостаток сказывается при обновлении систем из централизованного репозитория пакетов, в котором последние могут непрерывно обновляться, дробиться на более мелкие и т. п. Этот недостаток и стимулировал создание систем управления программными пакетами и поддержания целостности сист
Для автоматизации этого процесса и применяется Усовершенствованная система управления программными пакетами APT (от англ. Advanced Packaging Tool). Такая автоматизация достигается созданием одного или нескольких внешних репозиториев, в которых хранятся пакеты программ и относительно которых производится сверка пакетов, установленных в системе. Репозитории могут содержать как официальную версию дистрибутива, обновляемую его разработчиками по мере выхода новых версий программ, так и локальные наработки, например, пакеты, разработанные внутри компании.
Таким образом, в распоряжении APT находятся две базы данных: одна описывает установленные в системе пакеты, вторая — внешний репозиторий. APT отслеживает целостность установленной системы и, в случае обнаружения противоречий в зависимостях пакетов, руководствуется сведениями о внешнем репозитории для разрешения конфликтов и поиска корректного пути их устранения.
Первоначально APT был разработан для
управления установкой и удалением кой и удалением программ в дистрибутиве
Debian GNU/Linux
. При разработке ставилась задача заменить
используемую в Debian
систему выбора программных пакетов
dselect на новую, обладающую большими
возможностями и простым пользовательским интерфейсом, а также
позволяющую производить установку, обновление и повседневные
«<твенные» работы с установленными на машине
программами без необходимости изучения тонкостей используемого в
дистрибутиве менеджера программных пакетов.
Эти привлекательные возможности долгое время были доступны
только пользователям Debian
, поскольку в
APT поддерживался только один менеджер
пакетов, а именно применяемый в Debian
менеджер пакетов
dpkg
, несовместимый с используемым в
ALT Linux RPM. Эта несовместимость
заключается прежде всего в различии используемых форматов данных
(хотя существуют программы-конвертеры), но имеются и другие
различия, обсуждение которых выходит за рамки изложения.
APT, однако, изначально проектировался как не зависящий от конкретного метода работы с установленными в системе пакетами, и эта особенность позволила разработчикам из бразильской компании Conectiva реализовать в нём поддержку менеджера пакетов RPM. Таким образом, пользователи основанных на RPM дистрибутивов (дистрибутивы ALT Linux входят в их число) получили возможность использовать этот мощный инструмент.
Система APT состоит из нескольких утилит. Чаще всего используется утилита управления пакетами apt-get: она автоматически определяет зависимости между пакетами и строго следит за их соблюдением при выполнении любой из следующих операций: установка, удаление или обновление пакетов.
APT — это пакет утилит для работы из командной строки. Для любителей средств управления с графическим интерфейсом доступно на выбор несколько графических оболочек для APT. Одна из самых удачных — synaptic, удачных — synaptic, она значительно проще в использовании, чем другие оболочки для APT. Вместо использования дерева для отображения пакетов synaptic основан на мощной системе фильтрации пакетов. Это значительно упрощает интерфейс и вместе с тем предоставляет гораздо больше гибкости при навигации по очень длинным спискам пакетов. Если вы хотите устчитаете работать с программами с графическим интерфейсом, прежде всего попробуйте synaptic.
В ALT Linux также разработана графическая оболочка для APT — alterator-packages, которая основана на платформе Alterator и используется при установке системы и в средстве настройки ALT Linux Control Center.
Репозитории, с которыми работает APT, отличаются от обычного набора пакетов наличием метаинформации — индексов пакетов, содержащихся в репозитории, и сведений о них. Поэтому, чтобы получить всю информацию о репозитории, APT достаточно получить его индексы.
APT может работать с любым количеством репозиториев одновременно, формируя единую информационную базу обо всех содержащихся в них пакетах. При установке пакетов APT обращает внимание только на название пакета, его версию и зависимости, а расположение в том или ином репозитории не имеет значения. Если потребуется, APT в рамках одной операции установки группы пакетов может пользоваться несколькими репозиториями.
APT позволяет взаимодействовать с репозиторием с помощью различных протоколов доступа. Наиболее популярные — HTTP и FTP, однако существуют и некоторые дополнительные методы.
Для того, чтобы APT мог использовать тот или иной репозиторий,
информацию о нем необходимо поместить в файл
/etc/apt/sources.list
[1]. Описания репозиториев заносятся в этот файл в
следующем виде:
rpm [подпись] метод:путь база название rpm-src [подпись] метод:путь база название
Тип репозитория (скомпилированные программы или исходные тексты).
Необязательная строка-указатель на электронную подпись
разработчиков. Наличие этого поля подразумевает, что каждый
пакет из данного репозитория должен быть подписан
соответствующей электронной подписью. Подписи описываются в
файле /etc/apt/vendor.list
.
Способ доступа к репозиторию: ftp, http, file, rsh, ssh, cdrom.
Путь к репозиторию в терминах выбранного метода.
Относительный путь к базе данных репозитория.
Название репозитория.
Для добавления в sources.list
репозитория на компакт-диске в APT даже предусмотрена специальная утилита — apt-cdrom. Чтобы добавить запись о
репозитории на компакт-диске, достаточно вставить диск в привод
кт-диске, достаточно вставить диск в привод
и выполнить команду apt-cdrom add.
После этого в sources.list
появится запись о подключённом диске примерно такого вида:
rpm cdrom:[Junior Disk 1]/ ALTLinux main rpm-src cdrom:[Junior Disk 1]/ ALTLinux main
После того как отредактирован список репозиториев в
sources.list
, необходимо обновить локальну