[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

Управление пакетами

Управление пакетами является неотъемлемой частью любого дистрибутива Linux. Программное обеспечение в составе Slackware, как и многие сторонние инструменты, распространяется в виде исходного кода, который может быть скомпилирован, но процесс компиляции тысяч различных приложений и библиотек длителен и скучен. Поэтому многие предпочитают устанавливать уже скомпилированные пакеты программ. Фактически, при установке Slackware основная работа программы setup состоит в обработке списка пакетов инструментами управления пакетами. Далее мы рассмотрим различные инструменты, используемые для работы с пакетами Slackware.

pkgtool

Самый простой способ выполнения задач обслуживания пакетов – вызвать pkgtool(8), управляемый меню интерфейс к другим инструментам. pkgtool позволяет вам установить или удалить пакеты, а также посмотреть содержимое пакетов и список установленных пакетов в удобном интерфейсе ncurses.

pkgtool

pkgtool – удобный и простой способ выполнения большинства базовых задач, но более продвинутые задачи требуют более гибких инструментов.

Установка, удаление и обновление пакетов

Хотя pkgtool лидирует по удобству, installpkg(8) способен справиться с нештатными задачами, такими как быстрая установка пакета, установка целого набора пакетов или создание сценария установки. installpkg принимает список пакетов для установки и устанавливает их без дополнительных вопросов. Как и все инструменты управления пакетами Slackware, он полагает, что вы знаете, что делаете, и не пытается быть умнее вас. В простейшем варианте installpkg просто принимает список пакетов для установки и делает в точности то, что от него ожидалось.

darkstar:~# installpkg blackbox-0.70.1-i486-2.txz
Verifying package blackbox-0.70.1-i486-2.txz.
Installing package blackbox-0.70.1-i486-2.txz:
PACKAGE DESCRIPTION:
# blackbox (Blackbox window manager)
#
# Blackbox is that fast, light window manager you have been looking for
# without all those annoying library dependencies.
#
# Also included in this package is the bbkeys utility for controlling
# keyboard shortcut commands from within Blackbox.
#
# The Blackbox home page is http://blackboxwm.sourceforge.net
#
Package blackbox-0.70.1-i486-2.txz installed.

Конечно, можно устанавливать несколько пакетов разом при помощи символов подстановки оболочки. Следующая команда установит со смонтированного CD-ROM серию «N» целиком:

darkstar:~# installpkg /mnt/cdrom/slackware/n/*.t?z

В любое время можно посмотреть список установленных пакетов, получив список файлов каталога /var/log/packages, который содержит не только имена каждого приложения в системе, но и их версии. Чтобы узнать, какие файлы были установлены из этого пакета, посмотрите содержимое, например, при помощи cat:

darkstar:~#cat /var/log/packages/foo-1.0-x86_64-1

Команда покажет размеры упакованного и распакованного пакета, его описание, имя и расположение каждого файла в пакете.

Удаление пакета даже проще установки. Команда удаления, как и ожидалось, removepkg(8). Просто укажите ей, какие пакеты удалить, и removepkg проверит содержимое базы данных и удалит все файлы и каталоги этого пакета с одной оговоркой. Если этот файл входит в несколько установленных пакетов, он будет пропущен, и, если в каталоге есть новые файлы, каталог будет оставлен на месте. Поэтому удаление пакетов дольше, чем их установка.

darkstar:~# removepkg blackbox-0.70.1-i486-2.txz

Наконец, обновление пакета (как вы уже, наверное, догадались) выполняет upgradepkg(8), который сперва устанавливает новый пакет, затем удаляет файлы и каталоги, оставшиеся от прежнего пакета. Нужно запомнить одну важную вещь – upgradepkg не проверяет, что номер версии установленного пакета выше, чем у «нового», поэтому подходит и для установки предыдущих версий.

darkstar:~# upgradepkg blackbox-0.70.1-i486-2.txz

+==============================================================================
| Upgrading blackbox-0.65.0-x86_64-4 package using
./blackbox-0.70.1-i486-2.txz
+==============================================================================

Pre-installing package blackbox-0.70.1-i486-2...

Removing package
/var/log/packages/blackbox-0.65.0-x86_64-4-upgraded-2010-02-23,16:50:51...
--> Deleting symlink /usr/share/blackbox/nls/POSIX
--> Deleting symlink /usr/share/blackbox/nls/US_ASCII
--> Deleting symlink /usr/share/blackbox/nls/de
--> Deleting symlink /usr/share/blackbox/nls/en
--> Deleting symlink /usr/share/blackbox/nls/en_GB
...
Package blackbox-0.65.0-x86_64-4 upgraded with new package
./blackbox-0.70.1-i486-2.txz.

Всех эти инструменты принимают полезные параметры. Например, --root позволяет installpkg устанавливать пакеты в произвольный каталог. Параметр --dry-run указывает upgradepkg вывести, что им будет предпринято, без фактического внесения изменений в систему. За подробной информацией (как всегда) обратитесь к страницам руководств man.

Форматы сжатия пакетов

В прошлом все пакеты Slackware были сжаты утилитой сжатия gzip(1), что было хорошим компромиссом между скоростью сжатия и размером. Позже были разработаны новые схемы сжатия, которые получили поддержку и в инструментах управления пакетами. Сейчас официальные пакеты Slackware сжаты утилитой xz и имеют расширение .txz. Прежние (и многие сторонние пакеты) всё ещё используют расширение .tgz.

Стоит подчеркнуть, что расширения .tgz и .txz (если короче, файлы .t?z) общеупотребительные неуникальные расширения для для сжатых файлов .tar. В этом много преимуществ, их легко собрать на почти любой системе UNIX (многие другие форматы пакетов требуют специальных инструментов) и также просто разобрать.

Тем не менее, важно понимать, что хотя все пакеты Slackware являются файлами .t?z, но обратное неверно, не все .t?z файлы являются пакетами Slackware. installpkg не умеет волшебным образом устанавливать произвольные файлы .t?z, только пакеты Slackware.

slackpkg

slackpkg – это автоматизированный инструмент для управления пакетами Slackware. Он впервые был включён в /extra в Slackware-12.1, а начиная с выпуска Slackware-12.2 поставляется в наборе /ap базовой установки.

slackpkg можно использовать для загрузки пакета из Интернет и установки также, как используете installpkg для установки пакетов Slackware из каталога /extra установочного диска. Это особенно полезно для обновлений безопасности или важных обновлений приложений, опубликованных на серверах Slackware, некоторые из которых вы можете захотеть использовать на своей системе.

Без slackpkg процесс мог быть таким:

  1. Обнаружить в журнале изменений Slackware выпуск обновления.
  2. Посмотреть на используемом зеркале Slackware ссылку для загрузки пакета.
  3. Загрузить пакет с зеркала Slackware на жёсткий диск.
  4. Применить installpkg или pkgtool для установки загруженного пакета.

При помощи slackpkg он сокращается до:

  1. Обнаружить в журнале изменений Slackware выпуск обновления для foo.
  2. slackpkg install foo

Очевидно, что это упрощает довольно распространённую задачу.

Для использования slackpkg настройте систему на использование зеркала Slackware, отредактировав от root /etc/slackpkg/mirrors. Найдите зеркало, соответствующее версии и архитектуре Slackware, и раскомментируйте его. Этот список зеркал предлагает доступ по HTTP и FTP, но раскомментированным должно быть только одно зеркало.

После выбора зеркала обновите список файлов сервера командой slackpkg update. Это нужно проделывать при выпуске новых пакетов (рекомендуется регулярная проверка журнала изменений Slackware, дополнительную информацию см. в главе 18 «Отслеживание обновлений»).

Для поиска пакета используйте slackpkg search foo, для установки – slackpkg install foo.

После установки пакета при помощи slackpkg, его можно удалить или обновить при помощи pkgtool или других команд управления пакетами как описано в разделе «Установка, удаление и обновление пакетов».

Дополнительную информацию смотрите на страницах руководств man slackpkg(8) и slackpkg.conf(5), а также на вебсайте http://www.slackpkg.org/.

rpm2tgz

Одним из самых распространённых форматов пакетов программ для Linux является RPM; нередко разработчики предлагают свои приложения для загрузки только как исходный код или файл RPM. В этом случае у вас есть три варианта:

  1. Собрать собственный пакет Slackware.
  2. Скомпилировать и установить прямо из исходного кода.
  3. Сконвертировать установку из RPM.

Сборка из исходного кода или создание собственного пакета Slackware обычно не столь сложно, как можно подумать, а установка прямо из исходного кода не рекомендуется из-за отсутствия простого способа отслеживания того, что было установлено в систему после выполнения команды make install. Создание пакетов Slackware выходит за рамки настоящей главы. Остаётся использование полезной утилиты rpm2tgz.

rpm2tgz преобразует пакет RPM в пакет Slackware, который затем может быть установлен при помощи pkgtool или installpkg. Это, с одной стороны, избавляет от сборки собственного пакета Slackware, а с другой – предоставляет возможность удалять, обновлять и отслеживать установленное.

Пакет Slackware является архивом бинарных файлов с установочным сценарием, пакет RPM помимо этого содержит списки зависимостей и специальные сценарии. Поэтому rpm2tgz срабатывает не всегда, особенно на очень сложных приложениях, а также никогда не обрабатывает зависимости волшебным образом.

Чтобы попробовать rpm2tgz, загрузите из доверенного источника файл RPM и сконвертируйте его:

rpm2tgz foo-x.x.xx.rpm

Результатом будет файл .tgz, поэтому оригинальный RPM после преобразования может быть удалён. Для установки только что полученного пакета Slackware используйте installpkg, равно как для установки всех других пакетов, необходимых приложению для работы.

Навигация по главам

Предыдущая глава: Основные сетевые утилиты

Следующая глава: Отслеживание обновлений

Источники

 ru:slackbook:package_management ()
Перевод этой страницы?: