Часто используемые команды rpm

Часто используемые команды rpmRPM (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

Удачи

Комментарии

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
Регистр имеет значение
       .o8   ooooo               .o8                  .oooo.    ooooooooo.   
"888 `888' "888 .dP""Y88b `888 `Y88.
.oooo888 888 .oooo888 oooo ooo ]8P' 888 .d88'
d88' `888 888 d88' `888 `88. .8' .d8P' 888ooo88P'
888 888 888 888 888 `88..8' .dP' 888
888 888 888 o 888 888 `888' .oP .o 888
`Y8bod88P" o888ooooood8 `Y8bod88P" .8' 8888888888 o888o
.o..P'
`Y8P'
Введите код, изображенный в стиле ASCII-арт.