14.5 Файлы в rpm-пакетах

Когда есть необходимость работать со множеством файлов rpm-пакетов, например, с пакетами, не установленными в систему, вы можете обнаружить, что вводите одни и те же команды вновь и вновь при переходе к следующему пакету. Стандартная задача - вам нужно знать, какие зависимости имеются у пакета. Можно, конечно, ввести команду rpm с соответствующими опциями несколько раз, а можно написать коротенький скрипт с нужными опциями:

#!/bin/sh

rpm -qp --requires $*

Этот скрипт принимает имя файла rpm-пакета в качестве параметра. Назовем скрипт rpmdepend и запустим таким образом:

$ rpmdepend vim-common-6.1-14.i386.rpm

rpmlib(PayloadFilesHavePrefix) <= 4.0-1

rpmlib(CompressedFileNames) <= 3.0.4-1

/bin/sh

/usr/bin/awk

libc.so.6

libc.so.6(GLIBC_2.0)

libc.so.6(GLIBC_2.1)

Смысл: мы получили список зависимостей пакета, не обращаясь к БД RPM, из самого пакета.

Другая часто встречающаяся задача - вывод листинга файлов пакета вместе с информацией о пакете. Это реально помогает в работе, поскольку многие пакеты имеют ничего не говорящие об их функциональности имена, например dia или anakonda.

#!/bin/sh

rpm -qilp $* | less

Этот скрипт (назовем его rpminfo) может вывести много строк, поэтому вывод перенаправлен в просмотрщик less. Например:

$ ./rpminfo perl-XML-Dumper-0.4-22.noarch.rpm

Name : perl-XML-Dumper Relocations: /usr

Version : 0.4 Vendor: Red Hat, Inc.

Release : 22 Build Date: Tue 06 Aug 2002 01:53:30 PM CDT

Install date: (not installed) Build Host: vegeta.devel.redhat.com

Group : System Environment/Libraries Source RPM: perl-XML-Dumper-0.4-22.src.rpm

Size : 10015 License: GPL

Signature : DSA/SHA1, Tue 06 Aug 2002 02:11:39 PM CDT, Key ID fd372689897da07a

Packager : Red Hat, Inc.

URL : http://www.cpan.org

Summary : Perl module for dumping Perl objects from/to XML

Description :
XML::Dumper dumps Perl data to XML format. XML::Dumper can also read XML data that was previously dumped by the module and convert it back to Perl. Perl objects are blessed back to their original packaging; if the modules are installed on the system where the perl objects are reconstituted from xml, they will behave as expected. Intuitively, if the perl objects are converted and reconstituted in the same environment, all should be well.

/usr/lib/perl5/vendor_perl/5.8.0/XML/Dumper.pm

/usr/share/man/man3/XML::Dumper.3pm.gz

Таким образом, мы узнали функции пакета и какие файлы он установит в систему.

Далее - Запросы к БД RPM
Назад - Передача параметров в скрипт
Содержание