RPM (RedHat Package Manager) - самая популярная утилита управления пакетами для систем на базе
RedHat, таких как
RHEL,
CentOS,
Fedora. Инструмент позволяет системным администраторам и пользователям устанавливать, обновлять, удалять, запрашивать, проверять и управлять пакетами системного программного обеспечения в операционных системах
Unix/Linux.
Менеджер пакетов
RPM хранит информацию об установленных в системе приложениях в свой базе данных
/var/lib/rpm. Сами .rpm файлы содержат скомпилированные версии программного обеспечения, библиотеки необходимые для их работы, а так-же актуальную информацию об источниках пакетов, версиях и зависимостях.
RPM не может управлять программным обеспечением скомпилированным и установленным из исходных кодов.
По сути
RPM работает в нескольких режимах.
Запросы и проверки:
- rpm {-q|--query} [select-options] [query-options]
- rpm {-V|--verify} [select-options] [verify-options]
Установка, обновление, удаление пакетов:
- rpm {-i|--install} [install-options] PACKAGE_FILE ...
- rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
- rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
- rpm {-e|--erase} [--allmatches] [--justdb] [--nodeps] [--noscripts][--notriggers] [--test] PACKAGE_NAME ...
1. Проверить gpg подпись rpm пакета
Желательно всегда проверять
gpg подпись пакета перед его установкой что-бы удостовериться в его подлинности.
# rpm --checksig pidgin-2.7.9-5.el6.2.i686.rpm
pidgin-2.7.9-5.el6.2.i686.rpm: rsa sha1 (md5) pgp md5 OK
2. Установка rpm пакета
Для установки rpm пакета используется ключ
-i:
# rpm -ivh pidgin-2.7.9-5.el6.2.i686.rpm
Preparing... ########################################### [100%]
1:pidgin ########################################### [100%]
-i: Установить пакет
-v: показать отладочную информацию
-h: выводить хэш-меток при установке
3. Проверить зависимости rpm пакета перед установкой
Посмотреть список зависимостей пакета можно так:
# rpm -qpR htop-2.0.2-2.fc26.aarch64.rpm
ld-linux-aarch64.so.1()(64bit)
ld-linux-aarch64.so.1(GLIBC_2.17)(64bit)
libc.so.6()(64bit)
libc.so.6(GLIBC_2.17)(64bit)
libm.so.6()(64bit)
libm.so.6(GLIBC_2.17)(64bit)
libncursesw.so.6()(64bit)
libtinfo.so.6()(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1
rtld(GNU_HASH)
-q: выполнить запрос
-p | --package: запросить информацию
-R: опция режима query, список зависимостей пакета
4. Rpm, установка пакетов без зависимостей
Если вы уверены что все необходимые зависимости установлены, а rpm ругается и не дает установить пакет, можно игнорировать установку зависимостей с помощью флага
--nodeps:
# rpm -ivh --nodeps BitTorrent-5.2.2-1-Python2.4.noarch.rpm
Preparing... ########################################### [100%]
1:BitTorrent ########################################### [100%]
Вышеприведенная команда принудительно установит пакет, не смотря на ошибки
rpm. Учтите, что если окажется что зависимости все таки отсутствуют в системе, установленная программа работать не будет и нужно будет отдельно установить необходимые зависимости.
5. Rpm, проверить установленный пакет
Что-бы проверить установлен пакет или нет, нужно выполнить запрос нужного пакета:
пакет
htop установлен
# rpm -q htop
htop-2.0.2-1.el7.x86_64
пакет
fake не установлен
# rpm -q fake
package fake is not installed
6. Rpm, список файлов установленного пакета
Список файлов установленного пакета можно получить запросом
-ql (
query list):
# rpm -ql htop
/usr/bin/htop
/usr/share/doc/htop-2.0.2
/usr/share/doc/htop-2.0.2/AUTHORS
/usr/share/doc/htop-2.0.2/COPYING
/usr/share/doc/htop-2.0.2/ChangeLog
/usr/share/doc/htop-2.0.2/README
/usr/share/man/man1/htop.1.gz
/usr/share/pixmaps/htop.png
7. Rpm, список последних установленных пакетов
# rpm -qa --last
htop-2.0.2-1.el7.x86_64 Sat 03 Jun 2017 06:20:07 PM MSK
8. Rpm, вывести список всех установленных пакетов
Что-бы получить список всех установленных в системе пакетов, нужно выполнить запрос
-qa без дополнительных параметров
# rpm -qa
perl-HTML-Parser-3.71-4.el7.x86_64
dracut-network-033-463.el7.x86_64
filesystem-3.2-21.el7.x86_64
.....................
список пакетов будет довольно большим, для постраничного вывода можно использовать такие утилиты как
more или
less:
# rpm -qa | more
9. Обновление rpm пакета
Для обновления любого
rpm пакета используется опция
-U (
upgrade). Данная опция не только делает обновление любого пакета до последней версии, но и создает резервную копию старой версии пакета. Если после обновления что-то пойдет не так и программное обеспечение не заработает, можно будет вернуться на ранее установленную и заведомо рабочую версию.
# rpm -Uvh nx-3.5.0-2.el6.centos.i686.rpm
Preparing... ########################################### [100%]
1:nx ########################################### [100%]
10. Удаление rpm пакета
Для удаления пакета предназначена опция
-e (
erase), опция vv используется для более подробного вывода отладочных сообщений:
# rpm -evv nx
11. Удаление rpm пакета без зависимостей
Параметр
--nodeps принудительно удаляет пакет
rpm из системы. Имейте в виду, что удаление определенного пакета может нарушить работу других рабочих приложений.
# rpm -ev --nodeps htop
12. Rpm, запросить файл принадлежащий пакету
Если понадобилось узнать какому пакету принадлежит конкретный файл, используется опция
-qf (
query file):
# rpm -qf /etc/my.cnf
mariadb-libs-5.5.52-1.el7.x86_64
13. Rpm, получить информацию об установленном пакете
Что-бы получить развернутую информацию об установленном пакете, используется опция
-qi (
query info):
# rpm -qi htop
Name : htop
Version : 2.0.2
Release : 1.el7
Architecture: x86_64
Install Date: Sun 04 Jun 2017 10:20:51 AM MSK
Group : Applications/System
Size : 212139
License : GPL+
Signature : RSA/SHA256, Sun 24 Jul 2016 09:22:13 PM MSK, Key ID 6a2faea2352c64e5
Source RPM : htop-2.0.2-1.el7.src.rpm
Build Date : Sun 24 Jul 2016 01:01:34 PM MSK
Build Host : buildvm-26.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager : Fedora Project
Vendor : Fedora Project
URL : http://hisham.hm/htop/
Summary : Interactive process viewer
Description :
htop is an interactive text-mode process viewer for Linux, similar to
top(1).
14. Rpm, получить информацию о пакета который еще не установлен
Что-бы получить информацию о пакете который уже скачан, но еще не установлен, можно запросом
-qip (
query info package):
rpm -qip ./pachage_name.rpm
15. Rpm, посмотреть файлы документации определенного пакета
Запрос
-qdf (
query document file) выведет список всех файлов документации пакета:
# rpm -qdf /usr/bin/htop
/usr/share/doc/htop-2.0.2/AUTHORS
/usr/share/doc/htop-2.0.2/COPYING
/usr/share/doc/htop-2.0.2/ChangeLog
/usr/share/doc/htop-2.0.2/README
/usr/share/man/man1/htop.1.gz
16. Проверка определенного rpm пакета
При проверке пакета сравнивается информацию об установленных файлах пакета с базой данных
rpm.
# rpm -Vp sqlbuddy-1.3.3-1.noarch.rpm
S.5....T. c /etc/httpd/conf.d/sqlbuddy.conf
17. Проверка всех rpm пакетов
# rpm -Va
S.5....T. c /etc/rc.d/rc.local
.......T. c /etc/dnsmasq.conf
.......T. /etc/ld.so.conf.d/kernel-2.6.32-279.5.2.el6.i686.conf
18. Импорт GPG ключа
Для проверки пакетов
RHEL/CentOS/Fedora, нужно импортировать
GPG ключ. Для этого выполните следующую команду:
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
19. Rpm, посмотреть все импортированные ключи
# rpm -qa gpg-pubkey*
gpg-pubkey-7bd9bf62-5762b5f8
gpg-pubkey-352c64e5-52ae6884
gpg-pubkey-f4a80eb5-53a7ff4b
gpg-pubkey-810f8996-552b1d92
20. Перестроить поврежденную базу данных rpm
Иногда база данных rpm может быть повреждена, при этом rpm не может нормально функционировать. Если подобное случилось, нужно перестроить базу данных
rpm:
# cd /var/lib/rpm
# rm -f __db.*
# rpm --rebuilddb
Ну и как обычно:
# man rpm
Удачи
Комментарии
Отправить комментарий