Администрирование Linux Лекция 2 Управление пакетами при помощи RPM и YUM Иртегов Д.В. Новосибирский гос. Университет 2014 PRM • Red Hat Package Manager • Схема именования пакетов – package-version-patch.architecture.rpm – (Ex: ethereal-0.8.9-1.i386.rpm) • База установленных пакетов – /var/lib/rpm /var/lib/rpm [fat@vzhn ~]$ ls -l /var/lib/rpm total 82264 -rw-r--r-- 1 rpm rpm 5767168 Mar 4 14:31 Basenames -rw-r--r-- 1 rpm rpm 24576 Mar 4 14:31 Conflictname -rw-r--r-- 1 root root 0 Mar 4 14:30 __db.000 -rw-r--r-- 1 root root 24576 Mar 15 18:21 __db.001 -rw-r--r-- 1 root root 1318912 Mar 15 18:21 __db.002 -rw-r--r-- 1 root root 663552 Mar 15 18:21 __db.003 -rw-r--r-- 1 rpm rpm 2990080 Mar 4 14:31 Dirnames -rw-r--r-- 1 rpm rpm 10485760 Mar 4 14:31 Filemd5s -rw-r--r-- 1 rpm rpm 28672 Mar 4 14:31 Group -rw-r--r-- 1 rpm rpm 28672 Mar 4 14:31 Installtid -rw-r--r-- 1 rpm rpm 40960 Mar 4 14:31 Name -rw-r--r-- 1 rpm rpm 64823296 Mar 4 14:31 Packages -rw-r--r-- 1 rpm rpm 335872 Mar 4 14:31 Providename -rw-r--r-- 1 rpm rpm 245760 Mar 4 14:31 Provideversion -rw-r--r-- 1 rpm rpm 12288 Dec 2 2008 Pubkeys -rw-r--r-- 1 rpm rpm 421888 Mar 4 14:31 Requirename -rw-r--r-- 1 rpm rpm 233472 Mar 4 14:31 Requireversion -rw-r--r-- 1 rpm rpm 159744 Mar 4 14:31 Sha1header -rw-r--r-- 1 rpm rpm 81920 Mar 4 14:31 Sigmd5 -rw-r--r-- 1 rpm rpm 12288 Oct 21 16:53 Triggername [fat@vzhn ~]$ file /var/lib/rpm/Packages /var/lib/rpm/Packages: Berkeley DB (Hash, version 8, native byte-order) Установка пакетов • • • • rpm -i package_file.rpm rpm --install package_file.rpm rpm -i package_url Полезные опции – -v – показывает имя пакета при установке – -h – показывает прогресс установки • Не столь полезные опции – --force – устанавливать даже если есть конфликтующие пакеты – --nodeps – не проверять зависимости – --replacefiles – заменять файлы, даже если они неизвестны rpm Обновление и удаление • Обновление – rpm -u | --upgrade – Опция -f ставит новую версию, только если была старая • Удаление – rpm -e | --erase – Опция --nodep удалит, даже если это сломает зависимости Запросы • Выдача списка пакетов – rpm -q | --query • -a – выдает все пакеты • -f – по имени файла (кому принадлежит данный файл) • -p – по .rpm-файлу • --whatprovides • --whatrequires Выдача информации о пакетах • В сочетании с rpm -q – -ql – список файлов в пакете – -qi – подробная информация – --scripts – скрипты, исполняемые при установке/удалении пакета – -R, --requires - зависимости Проверка пакетов • Проверка целостности .rpm-файла – – – – rpm -K package_file.rpm rpm --checksig package_file.rpm Репозитории содержат пакеты gpg-pubkey Ключи из них ставятся в /etc/pki/rpm-gpg • Проверить контрольные суммы всех файлов в пакете (пакетах) – rpm -V | --verify package_name – rpm -Va – проверить все пакеты в системе – Использует базу /var/lib/rpm/Filemd5s Задания • Посмотреть, к каким пакетам относятся файлы /usr/bin/ls и /bin/ping • Попытаться поставить при помощи RPM пакеты htop с сайта http://pkgs.repoforge.org/htop/ не для той архитектуры или не для той версии системы YUM • Yellowdog Updater Modified (YUM) • Разработан на физическом факультете Duke University • Аналог apt в Debian • Обеспечивает – Автоматическое обновление – Поиск по индексу репозитория – Установку пакетов вместе с зависимостями База данных YUM [root@vzhn ~]# ls -l /var/cache/yum/ total 28 drwxr-xr-x 3 root root 4096 Mar 15 19:21 addons drwxr-xr-x 3 root root 4096 Mar 15 19:21 base drwxr-xr-x 3 root root 4096 Mar 15 19:21 centosplus drwxr-xr-x 3 root root 4096 Mar 15 19:21 extras drwxr-xr-x 3 root root 4096 Mar 15 19:21 rpmforge -rw-r--r-- 1 root root 1297 Mar 6 12:22 timedhosts.txt drwxr-xr-x 3 root root 4096 Mar 15 19:21 updates [root@vzhn ~]# ls -l /var/cache/yum/base total 11820 -rw-r--r-- 1 root root 0 Mar 15 19:21 cachecookie -rw-r--r-- 1 root root 1151648 Oct 15 01:52 comps.xml -rw-r--r-- 1 root root 510 Mar 15 02:21 mirrorlist.txt drwxr-xr-x 2 root root 20480 Dec 16 19:20 packages -rw-r--r-- 1 root root 1315864 Oct 15 01:52 primary.xml.gz -rw-r--r-- 1 root root 9574400 Oct 20 02:23 primary.xml.gz.sqlite -rw-r--r-- 1 root root 1140 Oct 15 01:52 repomd.xml Основные операции YUM • yum search – поиск по описаниям • yum info – развернутая информация • yum install – установить пакет вместе с зависимостями • yum localinstall package.rpm – установить rpm из файла, и подкачать зависимости, если надо • yum erase | remove – удалить пакет вместе с зависимостями • -С – использовать кэш (иначе каждый раз будет ходить на сервера репозиториев) Конфигурация YUM • /etc/yum.conf – основная конфигурация – Плагины – http proxy – Размещение баз данных – Другие параметры • /etc/yum.repos.d – По конфигу для каждого из репозиториев Пример описания репозитория [root@vzhn ~]# cat /etc/yum.repos.d/rpmforge.repo # Name: RPMforge RPM Repository for Red Hat Enterprise 5 - dag # URL: http://rpmforge.net/ [rpmforge] name = Red Hat Enterprise $releasever - RPMforge.net - dag #baseurl = http://apt.sw.be/redhat/el5/en/$basearch/dag mirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforge #mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge enabled = 1 protect = 0 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag gpgcheck = 1 priority=10 Задания • Поставить при помощи yum пакеты, необходимые для установки VirtualBox Guest Tools – gcc – kernel-headers • Попытаться найти в доступных репозиториях пакет htop • Подключить репозиторий rpmforge по инструкции с сайта http://repoforge.org/use/ • При помощи команды yum repolist убедиться, что он подключился • Поставить при помощи yum пакет htop