Глава 18. Управление пакетами Slackware

Содержание
18.1. Обзор формата пакетов
18.2. Утилиты для работы с пакетами
18.3. Создание пакетов
18.4. Создание тегов и tag-файлов (для программы setup)

Пакет с программным обеспечением - это набор связанных программ, уже готовых к установке. Когда вы загружаете программу в виде архива с исходными текстами, вам необходимо вручную сконфигурировать, откомпилировать и установить её. В программных пакетах это уже сделано за вас. Всё, что вам нужно сделать - это установить пакет. Другой удобной функцией пакетов с ПО является то, что их очень легко удалить и обновить, если вы пожелаете сделать это. В состав Slackware входят все программы, необходимые для управления пакетами. Вы легко можете устанавливать, удалять, обновлять, создавать и изучать пакеты.

После того, как RedHat выпустили свой менеджер пакетов RedHat (RedHat Package Manager), появился миф о том, что в Slackware нет утилиты для управления пакетами. Это просто заблуждение. В Slackware всегда был менеджер пакетов, даже ещё до того, как появился RedHat. И хотя он не настолько наворочен или распространён как rpm (или подобный ему deb-формат), pkgtool и связанные с этим менеджером программы настолько же удобны для установки пакетов, как и rpm. Проблема с pkgtool заключается не в том, что он не существует, а в том, что он не проверяет зависимости.

Очевидно многие люди в сообществе Linux думают, что менеджер пакетов по определению должен включать в себя проверку зависимостей. Ну что ж, это просто не тот случай, поскольку в Slackware как раз так и сделано. Это не означает, что у пакетов в Slackware отсутствуют зависимости, просто менеджер пакетов не проверяет их. Отслеживание зависимостей остаётся на совести системного администратора, и нам нравится такой подход.

18.1. Обзор формата пакетов

Перед тем, как приступить к изучению утилит, вам следует разобраться с форматом пакетов Slackware. В Slackware пакет - это просто tar-архив, сжатый gzip'ом. Собранные пакеты предназначены для распаковки в корневой каталог.

Вот пример фиктивной программы и её пакета:

./
usr/
usr/bin/
usr/bin/makehejaz
usr/doc/
usr/doc/makehejaz-1.0/
usr/doc/makehejaz-1.0/COPYING
usr/doc/makehejaz-1.0/README
usr/man/
usr/man/man1
usr/man/man1/makehejaz.1.gz
install/
install/doinst.sh

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

Обратите внимание на подкаталог install/. Это специальный каталог, в котором находится скрипт, выполняемый после установки, под названием doinst.sh. Если менеджер пакетов найдёт этот файл, он запустит его после установки пакета.

В пакет могут быть внедрены и другие скрипты, однако более подробно о них рассказано ниже в Разд. 18.3.2.