Наши партнеры

UnixForum






Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Тематический каталог -> Установка новых программных пакетов

Sbopkg - подключаем репозиторий Slackware

Оригинал: Sbopkg provides seamless package repository integration for Slackware
Автор: Drew Ames
Дата: 1 октября 2008
Перевод: Александр Тарасов aka oioki
Дата перевода: 7 октября 2008

Ни в одном дистрибутиве Linux нет всех-всех пакетов, которые могут понадобиться пользователю, поэтому у многих дистрибутивов есть специальные хранилища пакетов, которые называются репозиториями. Пользователь может скачать из них какой-либо пакет и установить его в своем дистрибутиве. С 2006 года сайт SlackBuilds.org выступал в роли высококачественного репозитория для дистрибутива Slackware, однако для пользования им приходилось переключаться между веб-браузером и терминалом. Sbopkg - это новая консольная программа на основе библиотеки ncurses, которая поможет пользователям собирать пакеты с сайта SlackBuilds.org, таким образом интегрируя репозиторий в систему Slackware.

SlackBuilds.org - это сайт, больше всего напоминающий официальный репозиторий Slackware. Он администрируется людьми из команды разработки Slackware и рекомендован к использованию основателем Slackware Патриком Волкердингом. Sbopkg автоматизирует и упорядочивает процесс сборки пакетов с помощью SlackBuilds.org.

Чтобы понять, как работает sbopkg, нужно знать, из чего состоят пакеты Slackware и каков принцип работы сайта SlackBuilds.org.

Как устроены пакеты Slackware

В Slackware Linux есть одна преобладающая идея - это прозрачность для пользователей. Приверженцы Slackware предпочитают вручную редактировать конфигурационные файлы, компилировать программы из исходников и чаще всего администрируют свои системы "руками". С другой стороны, если кто-то скомпилировал бинарный пакет, то вы совершенно не можете быть уверены в том, что у него были такие же библиотеки, как и у вас - и устанавливая бинарный пакет, вы не в силах изменить что-либо в его функциональности на уровне библиотек.

В Slackware есть собственный формат бинарных пакетов. Эти пакеты устанавливаются, обновляются и удаляются стандартными средствами Slackware. Поэтому разработчики Slackware для автоматизации сборки пакетов пользуются скриптами SlackBuild.

SlackBuild - это скрипты командной оболочки, обычно их нужно запускать из под пользователя root. Такой скрипт выполняет следующие действия: создает временный каталог для сборки; делает configure, компилирует и устанавливает программу в этот каталог; запускает стандартную программу makepkg из комплекта Slackware - создается пакет. Пакеты Slackware - это сжатые архивы .tar.gz. Скрипты SlackBuild гарантируют, что используются правильные опции конфигурирования и компиляции. Makepkg гарантирует, что при установке пакета с помощью стандартных средств Slackware файлы будут помещены в верные места файловой системы (по сути распаковка производится в корневой каталог), и назначенные файлам права тоже верные.

SlackBuilds.org - это коллекция скриптов SlackBuild и соответствующих вспомогательных файлов, не включенных в официальный дистрибутив Slackware. Целью сайта является "создание самой большой коллекции имеющихся скриптов SlackBuild, не в ущерб их высокому качеству". Список доступных приложений простирается от высокопрофильных пакетов вроде OpenOffice.org до более чем 200 индивидуальных библиотек, являющихся зависимостями для других пакетов.

Пользоваться сайтом просто, но это занимает некоторое время. Можно просматривать репозиторий, либо конкретно искать нужный пакет. У каждого пакета есть свой домашний сайт, на котором должна быть ссылка на архив с исходными кодами (архив лежит на том сайте, а не на SlackBuilds.org); сжатый файл скрипта SlackBuild; несколько текстовых файлов с информацией о пакете; иногда дополнительный скрипт, который нужно запустить после установки. Чтобы собрать пакет с помощью скрипта SlackBuild, необходимо:

  1. Скачать архив SlackBuild и распаковать его в отдельный каталог.
  2. Скачать исходные тексты и положить их туда же.
  3. По необходимости отредактировать скрипт SlackBuild.
  4. Выполнить скрипт SlackBuild от имени пользователя root. В конце процесса новый пакет обычно будет находиться в каталоге /tmp.
  5. Установить этот пакет.

Хотя этот процесс не очень тяжелый, однако он требует много ручной работы. Собрать один пакет таким образом можно, однако когда вы приметесь собирать большой сложный пакет, который еще имеет множество зависимостей, программа Sbopkg сэкономит вам кучу времени.

Для чего нужен Sbopkg?

Sbopkg упрощает процесс, автоматизируя процесс сборки пакета. Чтобы начать работу с Sbopkg, скачайте исходный файл программы или уже скомпилированный файл со страницы загрузки на веб-сайте sbopkg. Скрипт SlackBuild для самого Sbopkg включен в архив с исходниками. Установите пакет от имени root, затем отредактируйте файл /etc/sbopkg/sbopkg.conf.new. По умолчанию в нем содержится:

RSYNCMIRROR=slackbuilds.org::slackbuilds
SLACKVER=12.1
LOCALREPO=${LOCALREPO:-/home/sbo}
SRCDIR=${SRCDIR:-/var/cache/sbopkg}
export TMP=${TMP:-/tmp/SBo}
KEEPLOG=YES
TERMBUILD=NO

# По желанию - переменная $OUTPUT используется только скриптами SlackBuild.
# Скомпилированные пакеты будут помещаться в указанный путь OUTPUT.
#export OUTPUT=${OUTPUT:-/tmp}

Значения по умолчанию для большинства должны подойти. Я раскомментировал последнюю строку и поменял /tmp на другой каталог.

После этого сохраните файл как /etc/sbopkg/sbopkg.conf. Теперь запускайте sbopkg от имени root. Вы увидите главное меню программы. Выберите первый пункт меню, Rsync - при этом на компьютер будет загружена копия репозитория SlackBuilds.org. Репозиторий занимает 11 Мб места - достаточно мало ради возможности собирать более чем 1000 пакетов. После этого шага все скрипты SlackBuild и сопутствующие файлы (не исходные тексты!) будут скачаны и готовы к использованию.

Интерфейс программы в виде меню делает работу с ней, просмотр и поиск в репозитории простым, как будто вы пользуетесь веб-сайтом. Чтобы собрать пакет, сначала перейдите в меню этого пакета. Здесь можно будет просмотреть файлы readme, .info, slack-desc (краткое описание пакета) и скрипт SlackBuild. Можно также отредактировать скрипт SlackBuild, удалить модифицированный скрипт и собрать пакет. Последний пункт интересует нас больше всего. При выборе его, sbopkg скачает исходный файл, запустит скрипт SlackBuild (если есть ваша модифицированная версия, то будет выбрана она), по окончании сборки у вас спросят, нужно ли установить новый пакет.

Помимо сборки пакетов, в главном меню можно сделать следующее:

  • Вывести список установленных пакетов SBo.
  • Вывести список обновлений для уже установленных пакетов SBo.
  • Просмотреть содержимое каталога cache (где расположены исходные файлы). После просмотра можно удалить исходные файлы.
  • Просмотреть журнал сборки (его также можно удалить).

Возможность слежения за установленными пакетами и возможностями их обновления - очень полезная функция. Sbopkg следует философии Slackware (а также SlackBuilds.org), а именно не предлагает автоматическую проверку на зависимости. Однако почти в каждом пакете есть файл readme со списком зависимостей, а требуемые библиотеки имеются в репозитории.

У sbopkg есть еще интерфейс командной строки. Наберите sbopkg -h, чтобы увидеть список всех доступных опций. С sbopkg в консоли работать так же легко, как и через меню. К примеру, набрав sbopkg -s moria ищет в репозитории пакет, в названии которого есть подстрока "moria". Если пакет обнаруживается, пользователь сможет прочесть readme, .info-файл, slack-desc и просмотреть скрипт SlackBuild. Набрав sbopkg -b moria, начнется сборка пакета, по завершению которой вам будет предложено установить этот новый пакет.

Я проверил работспособность Sbopkg, все проходило гладко. У меня получилось собрать все пакеты, кроме OpenOffice.org, однако здесь проблема была в недокачанном файле. Если исходный файл поврежден или недокачан, у sbopkg не получится собрать пакет, это естественно. Однако я обнаружил, что при таком раскладе sbopkg не предлагает скачать файл заново, очистив старый. Вместо этого он заново и заново натыкался на ошибку. Я отписал автору sbopkg - Чессу Гриффину - об этой ошибке, и он быстренько ее устранил.

Единственное, что мне не понравилось - то, что при редактировании скрипта SlackBuild вызывается редактор vi. Нет, vi - это хороший редактор, но мои пальцы привыкли к Emacs, поэтому мне было немного некомфортно. Однако после чтения man-страницы sbopkg все сомнения улетучились. Там написано:

Sbopkg перекладывает некоторые функции на внешние программы, к примеру, для просмотра текстовых файлов в консольном режиме используется pager, а для редактирования SlackBuild-скриптов используется внешний редактор
...
Функция редактирования SlackBuild-скрипта вызывается одноименным пунктом меню, при этом вызывается текстовый редактор, указанный в переменной окружения $EDITOR, если переменная $EDITOR не определена, используется 'vi'. По желанию пользователя можно установить другое значение EDITOR, например, nano. Новое значение export EDITOR=nano нужно поместить в файл ~/.bashrc или подобный.

Я добавил строку export EDITOR='emacs -nw' в файл .bashrc в домашнем каталоге пользователя root. Теперь при редактировании стал вызываться Emacs, однако лично я предпочел бы, чтобы редактор указывался в файле /etc/sbopkg/sbopkg.conf, а не в системных переменных.

После интегрирования репозитория SlackBuilds.org в операционной системе, sbopkg упрощает сборку и установку пакетов Slackware. Sbopkg активно разрабатывается, однако программу уже можно назвать стабильной, мощной и несомненно полезной.