Менеджер пакетов RPM
В Red Hat Linux и подобных ему дистрибутивах используется менеджер пакетов RPM. Менеджер пакетов RPM реализован с помощью группы про- грамм, главная из которых — rpm. Далее приведен список важнейших режи- мов работы RPM:
r запрос — включается опцией -q или --query;
r проверка целостности файлов пакета — включается опцией -V или
--verify;
r проверка электронной подписи пакета — опции -K или --checksig;
r установка пакета — опции -i или --install;
r обновление пакета — работает с опцией -U или --upgrade;
r обновление версии пакета — опции -F или --freshen;
r удаление установленных пакетов — опции -e или --erase.
Используя режим запроса (опция -q), можно, например, узнать точную вер- сию установленного в системе пакета (пример 18.15).
Пример 18.15. Получение полного имени пакета в RPM |
$ rpm -q bash
bash-4.0-18.4.1.i586
В этом примере был осуществлен запрос к базе данных RPM. В качестве ключа запроса использовалось краткое название установленного в системе пакета — bash. В результате исполнения запроса было получено полное имя пакета.
Для получения более подробной информации о пакете следует воспользо- ваться опциями -qi. Использование опций -qi выводит подробную инфор- мацию о пакете, в том числе суммарный размер файлов, установленных из пакета (поле Size), и группу пакетов, к которой этот пакет принадлежит (поле Group).
В примере 18.16 выводится список файлов, установленных из пакета.
Пример 18.16. Получение списка файлов, установленных из пакета |
$ rpm -ql logrotate
/etc/cron.daily/logrotate
/etc/logrotate.conf
/etc/logrotate.d
/usr/sbin/logrotate
/usr/share/doc/logrotate-3.7.8
/usr/share/doc/logrotate-3.7.8/CHANGES
/usr/share/man/man8/logrotate.8.gz
/var/lib/logrotate.status
В этом примере получен список файлов, установленных из пакета logrotate.
Можно ограничиться лишь выводом списка конфигурационных файлов, установленных из пакета, используя для этого опции –qc. Кроме этого, с по- мощью опций -qd можно получить информацию о справочных файлах и до- кументации, установленных из этого пакета.
Если задано сочетание опций -qa, то будет получен список из всех пакетов, установленных в системе. Этим удобно пользоваться, если название пакета неизвестно.
Так, например, можно получить информацию обо всех пакетах, в имени ко- торых имеется строка "ftp" (пример 18.17).
Пример 18.17. Поиск пакета по подстроке |
$ rpm -qa | grep ftp
Можно узнать, из какого пакета установлен некоторый файл (пример 18.18).
Пример 18.18. Определение пакета по известному файлу |
$ rpm -qf /usr/sbin/named bind-9.6.1P2-1.1.1
Сочетание опций -qf требует в качестве ключа запроса задать имя файла.
Для получения информации о пакете, еще не установленном в системе, мож- но указать опции -qp, позволяющие извлекать информацию из файла пакета (пример 18.19).
Пример 18.19. Получение информации непосредственно из RPM-пакета |
$ rpm -qip Downloads/bind-9.6.1P2-1.2.src.rpm
Name : bind Relocations: (not relocatable) Version : 9.6.1P2 Vendor: openSUSE
...
В примере 18.18 получена информация о пакете, который не установлен в системе, из файла пакета. Часть вывода пропущена для краткости.
Опция -V переключает rpm в режим проверки целостности файлов, установ- ленных из пакета (пример 18.20).
Пример 18.20. Проверка целостности пакета |
$ rpm -V openldap-servers
S.5....T c /usr/share/openldap/migration/migrate_common.ph
Выводимая информация означает следующее: S — у файла не совпадает раз- мер, 5 — не совпадает сигнатура md5, T — время модификации изменено.
Опция -K позволяет проверять электронную подпись файлов пакетов. Перед проверкой следует удостовериться, что электронный сертификат производи- теля пакета (дистрибутива) установлен в системе. Обычно сертификат нахо-
дится на первом диске установочного комплекта. Во многих дистрибутивах электронный сертификат производителя импортируется еще на стадии уста- новки системы.
Пример 18.21. Импортирование сертификата |
# rpm --import /media/cdrom/RPM-GPG-KEY*
Команда rpm --import импортировала ключ (см. пример 18.21), находящий- ся на первом диске установочного комплекта, из файлов, удовлетворявших шаблону RPM-GPG-KEY*.
Далее импортированный ключ может использоваться для проверки цифро- вых подписей пакетов от данного производителя (пример 18.22).
Пример 18.22. Проверка подлинности пакета |
$ rpm -K Downloads/bind-9.6.1P2-1.2.src.rpm
Downloads/bind-9.6.1P2-1.2.src.rpm: rsa sha1 (md5) pgp md5 ОК
В приведенном примере подтверждена надежность проверяемого пакета. Установка или обновление пакета осуществляется с помощью опций:
r -i — пакет будет установлен при отсутствии в системе его предыдущей версии;
r -U — пакет будет установлен или обновлен в любом случае (Upgrade);
r -F — возможно только обновление версии пакета. Если предыдущей вер- сии в системе нет, то установка произведена не будет.
При установке или обновлении пакетов в качестве аргумента для rpm указы- вают имена файлов пакетов (.rpm-файлы). Имеется возможность проверить последствия установки без проведения реальной установки пакетов с помо- щью опции --test.
Эта же опция полезна для проверки последствий удаления пакетов из систе- мы без реального удаления (пример 18.23).
Пример 18.23. Проверка возможности удаления пакета |
$ rpm --test -e mailx error: Failed dependencies:
mailx is needed by (installed) nagios-3.0.6-4.1.i586
/usr/bin/mailx is needed by (installed) lsb-4.0-4.1.i586
Бывают случаи, когда установка или удаление пакета должны быть произве- дены, невзирая на нарушение зависимостей. Для этого предназначена опция
--nodeps.
В дистрибутивах Red Hat имеется удобная утилита yum, значительно автома- тизирующая поиск и установку пакетов и учитывающая зависимости пакетов. Важнейшие способы использования yum:
r yum search <имя> — поиск пакета по имени;
r yum list available — список доступных пакетов;
r yum grouplist — список всех установленных групп пакетов;
r yum repolist — список включенных репозиториев (источников) пакетов;
r yum info <имя> — вывод информации о пакете;
r yum provides <имя> — поиск пакета по его содержимому;
r yum install <имя> — установка пакета.
В других дистрибутивах обычно имеются аналогичные средства. Например, в SUSE пакеты можно устанавливать посредством программы конфигуриро- вания yast и специализированной утилиты zypper.
Вот пример использования zypper для поиска и установки пакета (при-
мер 18.24).
Пример 18.24. Использование zypper в Open SUSE |
$ zypper se atftp
Loading repository data... Reading installed packages...
S | Name | Summary | Type
--+-------+---------------------------------+-----------
| atftp | Advanced TFTP Server and Client | package
| atftp | Advanced TFTP Server and Client | srcpackageerror
$ su
# zypper install atftp
Здесь показано, как в Open SUSE можно найти пакет по его имени и устано- вить его с помощью zypper.
Дата добавления: 2015-06-12; просмотров: 831;