Управление пакетами Slackware — slapt-get

В этой статье я рассмотрю несколько стороннюю утилиту для управления пакетами в Slackware — slapt-get.

slapt-get является APT-подобной программой, которая использует стандартные инструменты Slackware для управления пакетами: installpkgremovepkg и 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 дает выбор и каждый решает, как ему удобнее управлять пакетами.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *