Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #90, ИЮНЬ 2006 г.

Курсы пакетного менеджмента

Евгений Зобнин aka j1m

Хакер, номер #090, стр. 090-100-2


Оба формата имеют очень сходные черты: PGP-сигнатуры для идентификации создателя пакета, контрольные суммы всех файлов пакета, отслеживание зависимостей и конфликтов, понятие виртуальных пакетов. Различия становятся очевидны, если смотреть на пакет с точки зрения человека его создающего. Пакеты RPM имеют очень запутанный, неоднозначный, сложно расширяемый формат, не совместимый с предыдущими версиями (современный RPM - это уже четвертая реинкарнация). С другой стороны, пакеты Debian - это архивы, созданные утилитой /usr/bin/ar (архиватор обычно используется для упаковки объектных файлов в статическую библиотеку), содержащие два тарболла, в одном из которых находится программа (то есть файлы, которые должны быть установлены в дерево файловой системы), а в другом - метаданные (описание пакета, зависимостей и тому подобное). При этом внутренняя структура пакетов Debian может быть легко расширена и адаптирована к новым условиям.

Утилиты /usr/sbin/rpm и /usr/sbin/dpkg, являющиеся стандартными средствами манипулирования пакетами в Red Hat и Debian, на самом деле особым "интеллектом" не обладают, их основные задачи - установка, удаление и извлечение метаданных из пакета. Пользователю же предлагается использовать более высокоуровневые средства, такие как apt-get (Debian), yum (Fedora Core), up2date (Red Hat) или urpmi (Mandriva). Все программы служат одной единственной цели - автоматизировать процесс установки и обновления пакетов (выкачивание пакета и зависимостей из сети, обновление отдельных пакетов и всего дистрибутива).

Кружок "умелые ручки"

В базе пакетов большинства популярных дистрибутивов Linux насчитывается несколько тысяч программ, что вполне устраивает 99% пользователей. Но часто возникает потребность как раз в той программе, которая отсутствует в поставке дистрибутива. Может быть, пакет и есть, но хочется опробовать вкусности новой версии, выпущенной пять часов назад. Что делать в этом случае? Самый простой путь - скачать исходники и собрать программу самостоятельно, но тогда мы столкнемся с проблемой удаления пакета в будущем, так как в базе пакетов информации о нем не будет. Создать пакет самостоятельно? Да, наиболее правильный путь, но и наиболее сложный и затратный в плане свободного времени. Что же делать? Использовать специальные утилиты, автоматизирующие процесс сборки пакета.

Checkinstall (checkinstall.izto.org) - одна из таких утилит. Checkinstall запускается на этапе установки уже собранной программы (как раз тогда, когда следует использовать make install), перехватывает библиотечные вызовы, используемые для копирования файлов, и составляет список устанавливаемых файлов. Затем на основе этой информации создает пакет (tgz, rpm или deb) и прописывает его в базу. Установка программы из исходников с использованием checkinstall выглядит так:

# ./configure

Назад на стр. 090-100-1  Содержание  Вперед на стр. 090-100-3
Hosted by uCoz