Алексей Федорчук
В своё время я упоминал, что slapt-get
— это фронт-энд к родному инструментарию Slackware для управления пакетами, который носит имя pkgtools
. И в некоторых случаях целесообразно воспользоваться низкоуровневыми утилитами последнего — например, при установке или удалении единичных пакетов, не имеющих сложных зависимостей.
В состав pkgtools
входят следующие утилиты:
explodepkg
— извлечение файлов пакета в текущий каталог;installpkg
— установка пакета;makepkg
— создание пакета;removepkg
— удаление пакета;upgradepkg
— обновление пакета.
Кроме того, имеется pkgtool
— меню-ориентированная оболочка для выполнения некоторых действий, с текстовым (на базе ncurces
) интерфейсом. Запускать её надо обязательно с правами суперпользователя:
$ sudo pkgtool
После чего возникает такая картинка:
Назначение пунктов меню очевидно, как и дальнейшие действия в них. Впрочем, эта оболочка показалась мне излишней сущностью. Так как на практике из всего набора утилит 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
сам собой файлы предыдущей версии не удаляет.