Алексей Федорчук
В последних строках прошлой заметки я внёс предложение: прежде чем искать недостающие бинарные пакеты «на стороне», попытаться собрать их «в своём коллективе». Для чего прибегнуть к соответствующим средствам — консольной утилите slapt-src
или графическому фронт-энду Sourcery. О графических «мордах» для управления пакетами разговор будет отдельный. Здесь же я расскажу о применении консольного инструмента.
Утилита slapt-src
предназначена для автоматической работы с так называемыми слакбилдами (slackbuilds
). Каковые, в свою очередь, представляют собой сценарии для автоматической сборки бинарных пакетов из исходных текстов. По идее они в чём-то сходны с портами FreeBSD или портежами Gentoo, однако отличаются а) «индивидуальным» характером и б) отсутствием проверки и, тем более, разрешения зависимостей. Именно из слкабилдов собирается дистрибутив Slackware и все его клоны, в том числе и Salix. Однако в последнем, помимо вошедших в дистрибутив пакетов (они представлены в системе в бинарном виде), есть и пакеты дополнительные, существующие только в виде слкабилдов. Вот для них-то и будет применяться slapt-src
.
Как уже говорилось, slapt-src
написана тем же Язоном Вудвардом, что и slapt-get
, и работает в том же стиле. Конструкция её команды требует указания действия (action
— аналог target
в slapt-get
), в большинстве случаев — аргумента, то есть имени slackbuild’а, и, возможно, опций. Полный список действий и опций можно получить командой
$ slapt-src --help
или просто запустив slapt-src
в «голом» виде. В отличие от slapt-get
, в этой утилите какждое действие и каждая опция имеют как полную, так и краткую форму — так, вместо --help
можно ввести -h. Действия и опции сопровождаются кристально ясными описаниями (в том числе и на русском), так что умеющий читать да прочтёт.
Порядок действий при использовании slapt-src
— точно тот же, что и при работе с slapt-get
. Первое действие — запуск команды
$ sudo slapt-src -u
которая скачает данные о слакбилдах из подключённых репозиториев. А затем — с помощью
$ slapt-src -l
просматривается список всех доступных слакбилдов или посредством
$ slapt-src -s slackbuildname
отыскивается нужный, и при необходимости командой
$ slapt-src -w [show] pkgname
просматривается его описание. После чего можно приступать к сборке:
$ slapt-src -i slackbuildname
Имя слакбилда всегда (насколько я знаю) совпадает с именем пакета, который собирается с его помощью.
Как обычно, всё сказанное проще проиллюстрировать на примере, что я сейчас и проделаю. В своё преся я говорил, что в базовой установке Salix’а нет ни одного вьювера графических изображений. Более того, ни одного из мне привычных мне вьюверов не обнаруживается и среди пакетов. А поскольку без вьюера — не жизнь, это безобразие надо ликвидировать.
Для просмотра изображений на скорую руку в Xfce предназначена штатная программа Ristretto. Не обнаружив её среди бинарников (и немало подивившись этому обстятельству), я быз труда отыскал её среди слакбилов:
$ slapt-src -s ristretto ristretto:0.6.3 - ristretto (fast and lightweight picture-viewer)
Поскольку давно знаю её как облупленную, в получении дополнительной информации не нуждался. И сразу запустил её сборку
$ sudo slapt-src -i ristretto [alv] Password:
После ввода пользовательского пароля мне сообщили:
Следующие пакеты будут установлены: ristretto Продолжить? [y/N]
Согласился с продолжением (от него можно избавиться, задав опцию -y
, она же --yes
), после чего началось скачивание слакбилда и его исполнение, включавшее:
- скачивание исходников программы и распаковку архива;
- выполнение конфигурирования;
- компиляция и сборка бинарного пакета;
- его установка в систему.
В результате в главном меню у меня появился пункт Графика, а в нём — пунктик Просмотр изображений Ristretto.
Не всегда дело проходит так гладко: возможно, что в системе отсутствует какая-либо из зависимостей устанавливаемого пакета. В этом случае процесс обрывается с сообщением об ошибке, которую нужно выявить и ликвидировать, прежде чем повторить процедуру. Это я продемонстрирую на одной из следующих страниц. А пока — посмотрим на графические «морды» рассмотренных консольных утилит.