18.2. Утилиты для работы с пакетами

Для управления пакетами существуют четыре основные утилиты. Они выполняют установку, удаление и обновление пакетов.

18.2.1. pkgtool

pkgtool(8) - это программа с поддержкой меню, которая позволяет устанавливать и удалять пакеты. Главное меню показано на Рис. 18-1.

Рисунок 18-1. Главное меню pkgtool.

Установка может быть выполнена из текущего каталога, другого каталога или с дискет. Просто выберите нужный вам метод установки и pkgtool начнёт искать в указанном вами месте пригодные к установке пакеты.

Также вы можете просмотреть список установленных пакетов, как показано на Рис. 18-2.

Рисунок 18-2. Режим просмотра pkgtool

Если вам нужно удалить пакеты, выберите опцию Remove и вам будет представлен список всех установленных пакетов. Отметьте те, которые вы хотите удалить, и нажмите OK. pkgtool выполнит их удаление.

Некоторые пользователи отдают предпочтение этой утилите, а не утилитам командной строки. Однако, следует отметить, что эти консольные утилиты предлагают гораздо больше функций. Кроме того, обновление пакетов возможно только с помощью утилит командной строки.

18.2.2. installpkg

Утилита installpkg(8) выполняет установку в систему новых пакетов. Её синтаксис следующий:

# installpkg опция имя_пакета

У installpkg есть только три опции. Одновременно может быть использована только одна опция.

Таблица 18-1. Опции installpkg

Опция Действие
-m Выполняет действие makepkg в текущем каталоге.
-warn Показывает, что произойдёт, если вы установите указанный пакет. Это полезно для ответственных систем, когда, перед тем как устанавливать что-либо, вы можете узнать что при этом произойдёт.
-r Рекурсивно устанавливает все пакеты их текущего каталога и ниже. Имя пакета может содержать маску, которая будет использована при рекурсивном поиске пакетов для установки.

Если вы определите переменную окружения ROOT перед запуском installpkg, этот путь будет использован в качестве корневого каталога. Это полезно для настройки новых дисков для размещения на них корневых каталогов. Обычно они монтируются в /mnt или какой-то другой каталог, отличный от /.

Запись в базе данных об установленном пакете хранится в /var/log/packages. Запись представляет собой обычный текстовый файл, по одному на пакет. Если в пакете есть послеустановочный скрипт, он записывается в каталог /var/log/scripts/.

Вы можете указать несколько пакетов или использовать маски в именах файлов. Учтите, что installpkg не сообщит вам, если будет перезаписываться уже установленный пакет. Он просто установит его поверх старого. Если вы хотите, чтобы старые файлы из предыдущего пакета были безопасно удалены, используйте утилиту upgradepkg.

18.2.3. removepkg

Утилита removepkg(8) удаляет из системы установленные пакеты. Её синтаксис следущий:

# removepkg опция имя_пакета

У removepkg есть только четыре опции. Одновременно может быть использована только одна опция.

Таблица 18-2. Опции removepkg

Опция Действие
-copy Пакет копируется в специальный каталог для пакетов. Так можно создать дерево из оригинальных пакетов, не удаляя их.
-keep Сохраняет временные файлы, созданные во время удаления. В действительности полезно только в целях отладки.
-preserve Пакет удаляется, однако в тоже время он копируется в каталог для резервных копий.
-warn Показывает, что бы произошло, если бы вы удалили пакет.

Если вы определите переменную окружения ROOT перед запуском removepkg, этот путь будет использован в качестве корневого каталога. Это полезно для настройки новых дисков для размещения на них корневых каталогов. Обычно они монтируются в /mnt или какой-то другой каталог, отличный от /.

removepkg выполняет поиск и в остальных установленных пакетах, но удаляет только те файлы, которые являются уникальными для указанного вами пакета. Он также найдёт послеустановочный скрипт для указанного пакета и удалит все созданные им символические ссылки.

Во время процесса удаления на экран выводится отчёт о ходе его выполнения. После удаления запись из базы данных пакетов перемещается в каталог /var/log/removed_packages, а скрипт, выполняемый после установки, перемещается в /var/log/removed_scripts.

Как и в случае с installpkg вы можете указать несколько пакетов или использовать маски в именах пакетов.

18.2.4. upgradepkg

Утилита upgradepkg(8) обновляет установленные пакеты Slackware. Её синтаксис следующий:

# upgradepkg имя_пакета

или

# upgradepkg старое_имя_пакета%старое_имя_пакета

upgradepkg сначала устанавливает новый пакет, а затем удаляет старый пакет, чтобы в системе больше не осталось старых файлов. Если у обновляемого пакета изменилось имя, используйте в команде знак процента для указания старого имени пакета (того, что установлен) и нового имени пакета (до которого вы выполняете обновление).

Если вы определите переменную окружения ROOT перед запуском upgradepkg, этот путь будет использован в качестве корневого каталога. Это полезно для настройки новых дисков для размещения на них корневых каталогов. Обычно они монтируются в /mnt или какой-то другой каталог, отличный от /.

upgradepkg не лишён недостатков. Вам всегда следует создавать резервные копии своих конфигурационных файлов. Если они будут удалены или перезаписаны, для нормальной работы вам потребуется восстановить их оригиналы.

Как и в случае с installpkg и removepkg вы можете указать несколько пакетов или использовать маски в именах пакетов.

18.2.5. rpm2tgz/rpm2targz

Менеджер пакетов Red Hat (Red Hat Package Manager, RPM) - это популярная на сегодняшний день система работы с пакетами. Многие распространители программного обеспечения предлагают свои продукты в формате RPM. Поскольку он не является нашим “родным” форматом, мы не рекомендуем вам использовать его. Однако некотрые вещи бывают доступны только в виде RPM (даже исходные тексты).

Мы предлагаем программу для преобразования RPM-пакетов в наш родной формат .tgz. Это позволит вам развернуть пакет (возможно, с помощью explodepkg) во временный каталог и изучить его содержимое.

Программа rpm2tgz создаст пакет Slackware с расширением .tgz, а rpm2targz создаёт архив с расширением .tar.gz.