Администрирование Linux Лекция 2 Управление пакетами при помощи RPM и YUM

advertisement
Администрирование 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
Download