В этой статье я рассмотрю несколько стороннюю утилиту для управления пакетами в Slackware — slapt-get.
slapt-get является APT-подобной программой, которая использует стандартные инструменты Slackware для управления пакетами: installpkg, removepkg и upgradepkg. (О них можно почитать здесь). Используется в дистрибутиве Salix.
Основные возможности slapt-get:
- поддержка нескольких репозиториев
- умение разрешать зависимости (конечно если их поддерживает сам репозиторий)
- поддерживает http, ftp и gpg ключи
- имеет очень простой конфигурационный файл
- имеет краткие параметры командной строки
- лаконичный и понятный вывод информации
Скачать slapt-get можно с сайта slackware.pkgs.org через браузер или wget.
wget http://www.slackel.gr/repo/x86_64/current/slackel/special/slapt-get-0.10.2t-x86_64-8dj.txz
А теперь подробнее. Конфигурационный файл содержит сразу и параметры настройки, и список репозиториев.
/etc/slapt-get/slapt-getrc
После установки часть репозиториев уже была настроена, это конечно удобно. Ниже приведу свой конфигурационный файл с комментариями.
# # Рабочий каталог, где хранится загруженный список пакетов, доступных в репозиториях, и сами пакеты, которые были загружены (и установлены) slapt-get:
WORKINGDIR=/var/slapt-get
# Исключения обновления для пакетов:
# [0-9\_\.\-]{1}pre[0-9\-\.\-]{1}
EXCLUDE=^aaa_base,^devs,^glibc.*,^kernel-.*,^rootuser-settings,^zzz-settings.*,-i?86-
# Список репозиториев с указанием приоритета через знак двоеточия:
SOURCE=http://www.slackel.gr/repo/x86_64/slackware-current/:OFFICIAL
SOURCE=http://www.slackel.gr/repo/x86_64/slackware-current/extra/:OFFICIAL
#SOURCE=http://sourceforge.net/projects/slackel/files/repo/x86_64/slackware-current/:OFFICIAL
#SOURCE=http://sourceforge.net/projects/slackel/files/repo/x86_64/slackware-current/extra/:OFFICIAL
# The Salix repository
SOURCE=http://download.salixos.org/x86_64/14.2/:PREFERRED
# The Slackel current repository
SOURCE=http://sourceforge.net/projects/slackel/files/repo/x86_64/current/:CUSTOM
SOURCE=http://www.slackel.gr/repo/x86_64/current/:CUSTOM
# Таким образом можно задать локальный репозиторий
# SOURCE=file:///var/www/packages/:CUSTOM
По скольку я скачал пакет версии current, то и список репозиториев сразу содержал ссылки на разрабатываемые ветки репозиториев. После настройки репозиториев нужно не забыть выполнить обновления списка пакетов.
bash-5.0# slapt-get -u
Получение данных о пакетах [http://www.slackel.gr/repo/x86_64/slackware-current/]...Сохранено
Получение списка патчей [http://www.slackel.gr/repo/x86_64/slackware-current/]...Сохранено
Получение контрольных сумм [http://www.slackel.gr/repo/x86_64/slackware-current/]...Сохранено
Получение подписи контрольных сумм [http://www.slackel.gr/repo/x86_64/slackware-current/]...Сохранено
Проверка подписи контрольных сумм [http://www.slackel.gr/repo/x86_64/slackware-current/]...Проверено
Получение ChangeLog.txt [http://www.slackel.gr/repo/x86_64/slackware-current/]...Сохранено
Получение данных о пакетах [http://sourceforge.net/projects/slackel/files/repo/x86_64/current/]... 0%
И ещё один момент для работы slapt-get необходим другой пакетный менеджер spkg. Получим его с того же сайта.
wget https://packages.slackonly.com/pub/packages/current-x86_64/system/spkg/spkg-1.0.1-x86_64-2_slonly.txz
Единственное при попытке выполнить установку я получил ошибку (alapt-get ищет spkg не в той директории), но это легко исправить:
Подготовка к установке libburn-1.5.0-x86_64-1dj
sh: /sbin/spkg: Нет такого файла или каталога
bash-5.0# whereis spkg
spkg: /usr/bin/spkg /usr/man/man8/spkg.8.gz
выяснили куда установился spkg
и делаем ссылку
bash-5.0# ln -s /usr/bin/spkg /sbin/spkg
А теперь давайте проверим как работает пакетный менеджер и разрешает ли он зависимости. Эксперимент проведем на программе для записи дисков xfburn. Командой slapt-get -i -s xfburn можно посмотреть список того что будет установлено. Видим что помимо самого xfburn программа определила зависимости.
bash-5.0# slapt-get -i -s xfburn
Чтение списка пакетов...Готово
Следующие НОВЫЕ пакеты будут установлены:
libburn libisofs xfburn
0 обновлено, 0 переустановлено, 3 установлено, 0 будет удалено, 0 не обновлено.
К получению: 0,0kB/929,0kB архивов.
После распаковки на диске будет занято дополнительно 3,6MB.
libburn-1.5.0-x86_64-1dj будет установлен
libisofs-1.5.0-x86_64-1dj будет установлен
xfburn-0.5.4-x86_64-2gv будет установлен
Готово
А для установки нужно выполнить slapt-get -i xfburn
bash-5.0# slapt-get -i xfburn
Чтение списка пакетов...Готово
Следующие НОВЫЕ пакеты будут установлены:
libburn libisofs xfburn
0 обновлено, 0 переустановлено, 3 установлено, 0 будет удалено, 0 не обновлено.
Все пакеты установились и программа сразу работает. Используя slackpkg пришлось бы разбираться с зависимостями. Правда у меня все пакеты для xfburn уже лежат в отдельной директории и проблем с установкой нет. Да, как ни странно, но держать все нужные пакеты под рукой мне кажется вполне Слкварный подход.
Стоит заметить, что slapt-get видит установленные через installpkg пакеты, а так же сам делает запись в фале /var/log/packages/, что делает его полностью совместимым с Salckware.
Вот я рассмотрел ещё дин инструмент управления пакетами в Salckware. Так что те, кто говорит, что в Salckware нет возможности разрешать зависимости не правы. Просто Salckware дает выбор и каждый решает, как ему удобнее управлять пакетами.
3 thoughts on “Управление пакетами Slackware — slapt-get”