Глава 18. Управление
пакетами Slackware
Пакет с программным обеспечением - это набор связанных программ, уже готовых к
установке. Когда вы загружаете программу в виде архива с исходными текстами, вам
необходимо вручную сконфигурировать, откомпилировать и установить её. В программных
пакетах это уже сделано за вас. Всё, что вам нужно сделать - это установить пакет. Другой
удобной функцией пакетов с ПО является то, что их очень легко удалить и обновить, если вы
пожелаете сделать это. В состав Slackware входят все программы, необходимые для
управления пакетами. Вы легко можете устанавливать, удалять, обновлять, создавать и
изучать пакеты.
После того, как RedHat выпустили свой менеджер пакетов RedHat (RedHat Package
Manager), появился миф о том, что в Slackware нет утилиты для управления пакетами. Это
просто заблуждение. В Slackware всегда был менеджер пакетов, даже ещё до того, как
появился RedHat. И хотя он не настолько наворочен или распространён как rpm (или подобный
ему deb-формат), pkgtool и связанные с этим менеджером программы
настолько же удобны для установки пакетов, как и rpm. Проблема с pkgtool заключается не в том, что он не существует, а в том, что он
не проверяет зависимости.
Очевидно многие люди в сообществе Linux думают, что менеджер пакетов по определению
должен включать в себя проверку зависимостей. Ну что ж, это просто не тот случай,
поскольку в Slackware как раз так и сделано. Это не означает, что у пакетов в Slackware
отсутствуют зависимости, просто менеджер пакетов не проверяет их. Отслеживание
зависимостей остаётся на совести системного администратора, и нам нравится такой
подход.
Перед тем, как приступить к изучению утилит, вам следует разобраться с форматом
пакетов 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.