|
- Руководство администратора ALT Linux Master. -
Усовершенствованная система управления программными пакетами APT (Advanced Packaging Tool) первоначально была разработана для управления установкой и удалением программ в дистрибутиве Debian GNU/Linux. При разработке ставилась задача заменить используемую в Debian систему выбора программных пакетов dselect на новую, обладающую большими возможностями и простым пользовательским интерфейсом, а также позволяющую производить установку, обновление и повседневные "хозяйственные" работы с установленными на машине программами без необходимости изучения тонкостей используемой в дистрибутиве менеджера программных пакетов.
Эти привлекательные возможности были долгое время доступны только пользователям Debian GNU/Linux, поскольку в APT поддерживался только один менеджер пакетов, а именно применяемый в Debian GNU/Linux менеджер пакетов dpkg, несовместимый с RPM. Эта несовместимость заключается прежде всего в различии используемых форматов данных (хотя сущесвуют программы-конверторы), хотя имеются и другие различия, обсуждение которых выходит за рамки изложения.
APT, однако, изначально проектировался, как не зависящий от конкретного метода работы с установленными в системе пакетами, и эта особенность позволила разработчикам из бразильской компании Conectiva реализовать в нем поддержку менеджера пакетов RPM. Таким образом пользователи основанных на RPM дистрибутивов (а в их число входит и ALTLinux) получили возможность использовать этот мощный инструмент.
APT и в настоящее время находится в стадии разработки, а текущая версия с поддержкой RPM классифицируется, как нестабильная. Это, тем не менее, не означает, что операции, выполняемые посредством APT, безусловно приведут к нестабильности системы. Более того, с помощью APT возможен строгий контроль за целостностью системы: проверка нарушенных зависимостей между установленными пакетами и исправление выявленных ошибок.
Использование APT.
Система APT состоит из нескольких утилит. Главной и наиболее часто используемой является утилита управления пакетами apt-get: она автоматически определяет зависимости между пакетами и строго следит за их соблюдением при выполнении любой из следующих операций: установка, удаление или обновление пакетов.
apt-get позволяет устанавливать в систему пакеты, требующих для своей работы других, пока еще не установленных. В этом случае он определяет, какие из отсутствующих пакетов необходимо установить, и доустанавливает их, пользуясь всеми доступными репозитариями.
Для того, чтобы apt-get мог использовать тот или иной репозитарий, информацию о нем необходимо поместить в файл /etc/apt/sources.list и выполнить команду
# apt-get update
Эту команду необходимо также выполнять каждый раз, когда вы собираетесь работать с репозитарием после длительного перерыва, так как при поиске пакетов APT должен руководствоваться базой данных, отражающей актуальное состояние репозитария. Такая база данных создается заново каждый раз, когда в репозитарии происходит изменение: добавление, удаление или переименование пакета. Для ускорения работы apt-get хранит локальную копию базы данных, которая через некоторое время может уже не соответствовать реальному состоянию репозитария.
В качестве источника пакетов можно использовать и компакт-диски дистрибутива, поскольку на каждом диске присутствует вся необходимая для APT информация о содержащихся на нем пакетах. Для этого необходимо использовать утилиту apt-cdrom с единственным параметром add:
# apt-cdrom add
Повторите этот процесс для всех CD в вашем наборе. После этого в /etc/apt/sources.list появится запись о подключенном диске, например:
rpm cdrom:[Master Disk 1]/ i586/Mandrake Master
rpm-src cdrom:[Master Disk 1]/ Mandrake Master
Если подключение к Internet отсутствует, то следует закомментировать те строчки в /etc/apt/sources.list, в которых говорится о ресурсах, доступных по Сети. Непосредственно после установки дистрибутива ALTLinux в /etc/apt/sources.list указаны несколько таких источников:
- репозитарий обновлений в системе безопасности дистрибутива;
-
бинарные пакеты из репозитария Sisyphus ("Сизиф");
-
исходные тексты архивов, использовавшихся для сборки пакетов в репозитарии Sisyphus.
Проект Sisyphus команды ALT Linux Team содержит большое количество программ, в том числе и не вошедших в тот или иной дистрибутив. Следует иметь в виду, что он не является самостоятельным дистрибутивом, а отражает текущее состояние разработки и может содержать нестабильные версии пакетов. Периодически на базе этого проекта выпускаются отдельные оттестированные "срезы"-дистрибутивы. Репозитарий ежедневно обновляется разработчиками, поэтому необходимо синхронизировать локальную базу данных с сервером ALTLinux (или его зеркалами) перед началом работы с APT. Такую синхронизацию достаточно делать один раз в день командой apt-get update. Для репозитариев, подключенных командой apt-cdrom add, синхронизацию достаточно сделать один раз в момент подключения.
Установка или обновление пакетов.
Установка пакета с помощью APT, выполняется командой
# apt-get install имя-пакета
Иногда, в результате операций с пакетами без использования APT, целостность системы нарушается и apt-get отказывается выполнять операции установки, удаления или обновления. В этом случае необходимо повторить операцию, задав опцию -f, заставляющую apt-get исправить нарушенные зависимости, если это возможно. В этом случае необходимо внимательно следить за сообщениями, выдаваемыми apt-get, анализировать их и четко следовать рекомендациям программы.
Команда apt-get install имя_пакета используется и для обновления уже установленного пакета или группы пакетов. В этом случае apt-get дополнительно проверяет, не обновилась ли версия пакета в репозитарии по сравнению с установленным в системе. Если вы не знаете точное название пакета, для его поиска можно воспользоваться утилитой apt-cache, описанной ниже.
Apt-get всегда спрашивает подтверждение выполнения операции установки и обновления, за исключением случая, когда реально требуется установить в систему (или обновить) только один пакет. Если вы не уверены в том, что результате выполнения операции система останется работоспособной, запустите apt-get с опцией -S, которая покажет отчет выполнения операции обновления, но реально обновление произведено не будет.
В случае обнаружения противоречий между установленными в системе пакетами, следует запустить команду apt-get -f install, и APT постарается разрешить найденные конфликты, предложив удалить или заменить конфликтующие пакеты. Любые действия в этом режиме обязательно требуют подтверждения со стороны пользователя.
Удаление установленного пакета.
Для удаления пакета используется команда apt-get remove имя_пакета. Для того, чтобы не нарушать целостность системы, будут удалены и все пакеты, зависящие от удаляемого: если отсутствует необходимая для работы приложения библиотека, то само приложение становится бесполезным. В случае удаления пакета, который относится к базовым компонентам системы, apt-get потребует дополнительного подтверждения производимой операции с целью предотвратить возможную случайную ошибку.
Обновление всех установленных пакетов.
Для обновления всех установленных пакетов используется команда apt-get upgrade. Она позволяет обновить те и только те установленные пакеты, для которых в репозитариях, перечисленных в /etc/apt/sources.list, имеются новые версии; при этом из системы не будут удалены никакие другие пакеты. Этот способ полезен при работе со стабильными пакетами приложений, относительно которых известно, что они при смене версии изменяются несущественно.
Иногда, однако, происходит изменение в именовании пакетов или изменение их зависимостей. Такие ситуации не обрабатываются командой apt-get upgrade, в результате чего происходит нарушение целостности системы: появляются неудовлетворенные зависимости. Например, переименование пакета MySQL-shared, содержащего динамически загружаемые библиотеки для работы с СУБД MySQL, в libMySQL, отражая общую тенденцию к наименованию библиотек в дистрибутиве, не приводит к тому, что установка обновленной версии libMySQL требует удаления старой версии MySQL-shared. Для разрешения этой проблемы существует режим обновления в масштабе дистрибутива ? apt-get dist-upgrade.
В случае обновления всего дистрибутива APT проведет сравнение системы с репозитарием и удалит устаревшие пакеты, установит новые версии присутствующих в системе пакетов, а также отследит ситуации с переименованиями пакетов или изменения зависимостей между старыми и новыми версиями программ. Все, что потребуется поставить (или удалить) дополнительно к уже имеющемуся в системе, будет указано в отчете apt-get, которым APT предварит само обновление.
При работе с Sisyphus для обновления системы рекомендуется использовать команду apt-get dist-upgrade.
Поиск в репозитарии.
Для поиска нужного пакета можно воспользоваться утилитой apt-cache, которая позволяет искать не только по имени пакета, но и по его описанию. Команда apt-cache search подстрока позволяет найти все пакеты, в именах или описании которых присутствует указанная подстрока.
|