Про Salix. «Голые» пакеты

Алексей Федорчук

В своё время я упоминал, что slapt-get — это фронт-энд к родному инструментарию Slackware для управления пакетами, который носит имя pkgtools. И в некоторых случаях целесообразно воспользоваться низкоуровневыми утилитами последнего — например, при установке или удалении единичных пакетов, не имеющих сложных зависимостей.

В состав pkgtools входят следующие утилиты:

  • explodepkg — извлечение файлов пакета в текущий каталог;
  • installpkg — установка пакета;
  • makepkg — создание пакета;
  • removepkg — удаление пакета;
  • upgradepkg — обновление пакета.

Кроме того, имеется pkgtool — меню-ориентированная оболочка для выполнения некоторых действий, с текстовым (на базе ncurces) интерфейсом. Запускать её надо обязательно с правами суперпользователя:

$ sudo pkgtool

После чего возникает такая картинка:

salix03-21Назначение пунктов меню очевидно, как и дальнейшие действия в них. Впрочем, эта оболочка показалась мне излишней сущностью. Так как на практике из всего набора утилит pkgtools могут оказаться востребоваными две — installpkg и removepkg, что я продемонстрирую на примере.

В установке Salix нет моего любимого, с некоторых пор, шрифта для элементов интерфейса — Cantarell. Не обнаруживается соответствующий пакет (cantarell-fonts) и в репозиториях, и среди штатных слакбилдов. В то же время этот пакет для Slackware (правда, не последней версии) легко найти в сети. Подключать любой из содержащих его репозиториев ради одного пакета не смысла. Можно сделать проще: скачать пакет в произвольное место и дать команду:

$ sudo installpkg cantarell-fonts-0.0.7-noarch-1gsb.txz

И через несколько мгновений последует сообщение, что

Package cantarell-fonts-0.0.7-noarch-1gsb.txz installed.

И в каталоге /usr/share/fonts/ почвится подкаталог OTF с двумя файлами Cantarell-Bold.otf и Cantarell-Regular.otf. Кроме того, будут добавлены необходимые служебные файлы в каталоги /etc/fonts/ и /usr/doc/.

Установленный таким образом пакет попадает в базу данных slapt-get, в чём легко убедиться командой

$ slapt-get --search cantarell-fonts                                       [alv]
cantarell-fonts-0.0.7-noarch-1gsb [inst=да]: cantarell-fonts (contemporary Humanist sans serif for GNOME)

То есть при необходимости может быть удалён его средствами. Однако его можно удалить и средствами pkgtools:

$ sudo removepkg cantarell-fonts

Зачем удалять только что установленный пакет, да ещё и такой полезный? Как я уже говорил, бинарник его можно найти в сети для старой версии Slackware (13.37), да и версия содержащегося в нём шрифта не юна (0.07, тогда как текущая 0.15). В то же время в сети обнаруживается и слакбилд этого пакета, позволяющий собрать версию последнюю.

Что я и проделал: сохранил содержимое по ссылке в текстовом файле, задал для него бит исполнения:

$ chmod a+x cantarell-fonts.SlackBuild

и запустил:

$ ./cantarell-fonts.SlackBuild

В результате в текущем каталоге образовался архив исходников cantarell-fonts-0.0.15.tar.xz (скачанный из сети), файл проверки контрольной суммы cantarell-fonts-0.0.15.sha256sum и собственно готовый бинарный пакет cantarell-fonts-0.0.15-noarch-1alv.txz. Который остаётся только установить тем же самым образом, что и ранее:

$ sudo installpkg cantarell-fonts-0.0.15-noarch-1alv.txz

Удаление предварительной версии в этом случае (да и в большинстве аналогичных) — процедура обязательная, во избежание путаницы: шрифты нового пакета прописываются по несколько другому пути /usr/share/fonts/OTF/cantarell/, да и служебная информация отличается от старой. А скрипт *.SlackBuild сам собой файлы предыдущей версии не удаляет.

Оглавление