Часто используемые команды rpm
Часто используемые команды rpm
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 … |
- Проверить 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
- Установка rpm пакета
Для установки rpm пакета используется ключ -i:
- rpm -ivh pidgin-2.7.9-5.el6.2.i686.rpm
Preparing… ########################################### [100%] 1:pidgin ########################################### [100%]
-i: Установить пакет -v: показать отладочную информацию -h: выводить хэш-меток при установке
- Проверить зависимости 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, список зависимостей пакета |
- Rpm, установка пакетов без зависимостей
Если вы уверены что все необходимые зависимости установлены, а rpm ругается и не дает установить пакет, можно игнорировать установку зависимостей с помощью флага –nodeps:
- rpm -ivh –nodeps BitTorrent-5.2.2-1-Python2.4.noarch.rpm
Preparing… ########################################### [100%] 1:BitTorrent ########################################### [100%]
Вышеприведенная команда принудительно установит пакет, не смотря на ошибки rpm. Учтите, что если окажется что зависимости все таки отсутствуют в системе, установленная программа работать не будет и нужно будет отдельно установить необходимые зависимости.
- Rpm, проверить установленный пакет
Что-бы проверить установлен пакет или нет, нужно выполнить запрос нужного пакета: пакет htop установлен
- rpm -q htop
htop-2.0.2-1.el7.x86_64
пакет fake не установлен
- rpm -q fake package fake is not installed
- 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
- Rpm, список последних установленных пакетов
- rpm -qa –last
htop-2.0.2-1.el7.x86_64 Sat 03 Jun 2017 06:20:07 PM MSK
- 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
- Обновление rpm пакета
Для обновления любого rpm пакета используется опция -U (upgrade). Данная опция не только делает обновление любого пакета до последней версии, но и создает резервную копию старой версии пакета. Если после обновления что-то пойдет не так и программное обеспечение не заработает, можно будет вернуться на ранее установленную и заведомо рабочую версию.
- rpm -Uvh nx-3.5.0-2.el6.centos.i686.rpm
Preparing… ########################################### [100%] 1:nx ########################################### [100%]
- Удаление rpm пакета
Для удаления пакета предназначена опция -e (erase), опция vv используется для более подробного вывода отладочных сообщений:
- rpm -evv nx
- Удаление rpm пакета без зависимостей
Параметр –nodeps принудительно удаляет пакет rpm из системы. Имейте в виду, что удаление определенного пакета может нарушить работу других рабочих приложений.
- rpm -ev –nodeps htop
- Rpm, запросить файл принадлежащий пакету
Если понадобилось узнать какому пакету принадлежит конкретный файл, используется опция -qf (query file):
-rpm -qf /etc/my.cnf
mariadb-libs-5.5.52-1.el7.x86_64
- 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).
- Rpm, получить информацию о пакета который еще не установлен Что-бы получить информацию о пакете который уже скачан, но еще не установлен, можно запросом -qip (query info package):
- rpm -qip ./pachage_name.rpm
- 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
- Проверка определенного rpm пакета
При проверке пакета сравнивается информацию об установленных файлах пакета с базой данных rpm:
- rpm -Vp sqlbuddy-1.3.3-1.noarch.rpm
S.5….T. c /etc/httpd/conf.d/sqlbuddy.conf
- Проверка всех 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
- Импорт GPG ключа
Для проверки пакетов RHEL/CentOS/Fedora, нужно импортировать GPG ключ. Для этого выполните следующую команду:
- rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
- Rpm, посмотреть все импортированные ключи:
-rpm -qa gpg-pubkey*
gpg-pubkey-7bd9bf62-5762b5f8
gpg-pubkey-352c64e5-52ae6884
gpg-pubkey-f4a80eb5-53a7ff4b
gpg-pubkey-810f8996-552b1d92
- Перестроить поврежденную базу данных rpm Иногда база данных rpm может быть повреждена, при этом rpm не может нормально функционировать. Если подобное случилось, нужно перестроить базу данных rpm:
- cd /var/lib/rpm
- rm -f __db.*
- rpm –rebuilddb
Ну и как обычно:
- man rpm