Книга: Погружение в Salix
Что такое slackbuilds
Что такое slackbuilds
В самом общем виде слакбилд – это просто сценарий автоматической сборки любого бинарного пакета из его исходных текстов, обеспечивающий выполнение (почти) всех стадий этого процесса – получение «авторского» архива, его развёртывание в дерево исходников, их конфигурирование и собственно компиляцию, завершающуюся созданием бинарного пакета в формате Slackware. В идее слакбилдов легко увидеть черты сходства с портами FreeBSD, портежами Gentoo и особенно с Arch Building System дистрибутива Archlinux. Однако есть и несколько важных различий со всеми перечисленными системами пакетного менеджмента. О некоторых я скажу чуть позже.
Именно из слакбилдов собираются пакеты Slackware и всех её клонов, в том числе и Salix – те самые, которые лежат в соответствующих официальных репозиториях. Однако существует и огромное число пакетов, по тем или иным причинам не попавшим в состав «бинарного официоза» ни одного из дистрибутивов. Вот среди них и следует искать наши «недостачи».
И первым шагом на этом пути будет посещение сайта SlackBuilds.org, который, собственно, и является эпонимом этой системы. Он содержит огромную коллекцию тематически структурированных слакбилдов, сопровождающуюся средствами их поиска и инструкцией по применению.
Рисунок 8-1. Структура репозитория SlackBuilds.org
Обращение с найденным слакбилдом в общем случае примерно таково (хотя детали могут меняться). Вначале он (то есть файл вида *.SlackBuild и несколько файлов с метаинформацией, в том числе файлом README) скачивается в подходящий каталог, затем ему присваивается аттрибут исполнения:
$ chmod a+x *.SlackBuild
После чего эту способность к исполнению надлежит реализовать:
$ ./*.SlackBuild
Для обеих процедур, как можно видеть, достаточно прав обычного пользователя. В результате второй в текущем каталоге появляется скачанный из сети архив исходных текстов, файл проверки контрольной суммы, а в каталоге /tmp – готовый бинарный пакет, то есть файл вида *.txz. Который остаётся только установить обычным образом, например, описанным в главе пятой, разумеется, уже с правами администратора:
$ sudo installpkg *.txz
В самих по себе слакбилдах штатно не предусмотрено никакого механизма контроля зависимостей – кроме, разумеется, вывода сообщений в случае их нарушения. Централизованно не предлагает такого механизма и сам репозиторий SlackBuilds.org. В этом первое важное отличие слакбилдов от систем типа портов или портежей.
Однако некоторый контроль зависимостей при построении слакбилдов и не запрещается: автор может перечислить их в упомянутом только что файле README. Но делать этого он не обязан. И это вторая важная их особенность: если порты или портежи претендуют на универсальность и «всеохватность», и потому более или менее поддерживаются в целостном состоянии, то каждый слакбилд – продукт «индивидуальный». Автор его в явном или не явном виде как бы говорит, что сделал его для собственных целей, а уж дальше – не его дело. И SlackBuilds.org – это просто «копилка» таких индивидуальных решений.
Разумеется, сказанное не относится к слакбилдам, с помощью которых собираются пакеты официальной части Slackware или Salix (а это, повторяю, точно такие же слакбилды, как и любые другие): здесь майнтайнеры дистрибутивов в лице, соответственно, Патрика или Георгия с соратниками за целостностью системы следят.
Однако Salix предоставляет некоторую возможность контроля зависимостей при сборке произвольных слакбилдов – собственный официальный их репозиторий.
- 1.1.1. Что такое объект
- Что делать
- Что делать, если при установке принтера появляется сообщение Невозможно завершение операции. Подсистема печати недоступн...
- Что дает грамотная должностная инструкция
- Как сделать, чтобы компьютер выключался
- ПОМОГАЙТЕ ДРУГИМ ПРИДЕРЖИВАТЬСЯ ПОЧТОВОГО «ЭТИКЕТА»
- Предисловие Кое-что новенькое – поговорим напрямую
- На что обращать внимание
- Что такое продажа?
- 1.5. Потренируйте свою интуицию: что следует запомнить
- Что происходит, когда бренды растут или идут на спад
- Почтовый клиент