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

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

  1. Установка rpm пакета

Для установки rpm пакета используется ключ -i:

  • rpm -ivh pidgin-2.7.9-5.el6.2.i686.rpm

Preparing… ########################################### [100%] 1:pidgin ########################################### [100%]

-i: Установить пакет -v: показать отладочную информацию -h: выводить хэш-меток при установке

  1. Проверить зависимости 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, список зависимостей пакета
  1. Rpm, установка пакетов без зависимостей

Если вы уверены что все необходимые зависимости установлены, а rpm ругается и не дает установить пакет, можно игнорировать установку зависимостей с помощью флага –nodeps:

  • rpm -ivh –nodeps BitTorrent-5.2.2-1-Python2.4.noarch.rpm

Preparing… ########################################### [100%] 1:BitTorrent ########################################### [100%]

Вышеприведенная команда принудительно установит пакет, не смотря на ошибки rpm. Учтите, что если окажется что зависимости все таки отсутствуют в системе, установленная программа работать не будет и нужно будет отдельно установить необходимые зависимости.

  1. Rpm, проверить установленный пакет

Что-бы проверить установлен пакет или нет, нужно выполнить запрос нужного пакета: пакет htop установлен

  • rpm -q htop

htop-2.0.2-1.el7.x86_64

пакет fake не установлен

  • rpm -q fake package fake is not installed
  1. 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

  1. Rpm, список последних установленных пакетов
  • rpm -qa –last

htop-2.0.2-1.el7.x86_64 Sat 03 Jun 2017 06:20:07 PM MSK

  1. 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
  1. Обновление rpm пакета

Для обновления любого rpm пакета используется опция -U (upgrade). Данная опция не только делает обновление любого пакета до последней версии, но и создает резервную копию старой версии пакета. Если после обновления что-то пойдет не так и программное обеспечение не заработает, можно будет вернуться на ранее установленную и заведомо рабочую версию.

  • rpm -Uvh nx-3.5.0-2.el6.centos.i686.rpm

Preparing… ########################################### [100%] 1:nx ########################################### [100%]

  1. Удаление rpm пакета

Для удаления пакета предназначена опция -e (erase), опция vv используется для более подробного вывода отладочных сообщений:

  • rpm -evv nx
  1. Удаление rpm пакета без зависимостей

Параметр –nodeps принудительно удаляет пакет rpm из системы. Имейте в виду, что удаление определенного пакета может нарушить работу других рабочих приложений.

  • rpm -ev –nodeps htop
  1. Rpm, запросить файл принадлежащий пакету

Если понадобилось узнать какому пакету принадлежит конкретный файл, используется опция -qf (query file):

-rpm -qf /etc/my.cnf

mariadb-libs-5.5.52-1.el7.x86_64

  1. 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).

  1. Rpm, получить информацию о пакета который еще не установлен Что-бы получить информацию о пакете который уже скачан, но еще не установлен, можно запросом -qip (query info package):
  • rpm -qip ./pachage_name.rpm
  1. 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

  1. Проверка определенного rpm пакета

При проверке пакета сравнивается информацию об установленных файлах пакета с базой данных rpm:

  • rpm -Vp sqlbuddy-1.3.3-1.noarch.rpm

S.5….T. c /etc/httpd/conf.d/sqlbuddy.conf

  1. Проверка всех 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

  1. Импорт GPG ключа

Для проверки пакетов RHEL/CentOS/Fedora, нужно импортировать GPG ключ. Для этого выполните следующую команду:

  • rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
  1. Rpm, посмотреть все импортированные ключи:

-rpm -qa gpg-pubkey*

gpg-pubkey-7bd9bf62-5762b5f8

gpg-pubkey-352c64e5-52ae6884

gpg-pubkey-f4a80eb5-53a7ff4b

gpg-pubkey-810f8996-552b1d92

  1. Перестроить поврежденную базу данных rpm Иногда база данных rpm может быть повреждена, при этом rpm не может нормально функционировать. Если подобное случилось, нужно перестроить базу данных rpm:
  • cd /var/lib/rpm
  • rm -f __db.*
  • rpm –rebuilddb

Ну и как обычно:

  • man rpm