Команды RPM Linux с примерами

by itisgood

RPM (Redhat Package Manager) – это утилита управления пакетами командной строки, используемая для установки, удаления, обновления, запросов и проверки пакетов программного обеспечения.

В этой статье я расскажу о некоторых наиболее распространенных командах Linux rpm для системного администратора.

Некоторые из Linux-дистрибутивов RPM – это Redhat, Centos, Fedora и OpenSuse.

Yum и DNF – это интерфейсы для управления RPM, которые имеют больше возможностей и могут преодолеть ограничения, которые у него есть.

Как получить пакеты RPM

Существует несколько способов получения пакетов RPM, как показано ниже:

  1. программное обеспечение CD / DVD
  2. CentOS Mirror
  3. RedHat (нужна учетная запись)
  4. Любые открытые веб-сайты репозитория

Основные режимы для команды RPM

Install : он используется для установки любого пакета RPM.
Remove : используется для удаления
Upgrade : используется для обновления существующего пакета RPM.
Query : используется для запроса любого пакета RPM.
Verify : используется для проверки пакетов RPM.

Примеры пакетов RPM

GeoIP-приложение GeoIP-1.5.0-11.el7.x86_64.rpm представляет собой библиотеку пакетов RPM для страны / города / организации для IP-адреса или сопоставления имен хостов.

GeoIP – это имя пакета, версия 1.5.0-11.el7, версия 7 и архитектура .x86_64.

Установка

1) Как узнать информацию о пакете RPM без установки

После того, как мы загрузили пакет, мы допустим хотим узнать информацию о пакете перед установкой.

Мы можем использовать -qip (query info package), чтобы перечислить информацию о пакете.

$ sudo rpm -qip GeoIP-1.5.0-11.el7.x86_64.rpm
output
Name        : GeoIP
Version     : 1.5.0
Release     : 11.el7
Architecture: x86_64
Install Date: (not installed)
Group       : Development/Libraries
Size        : 2905020
License     : LGPLv2+ and GPLv2+ and CC-BY-SA
Signature   : RSA/SHA256, Sun 20 Nov 2016 05:49:19 PM UTC, Key ID 24c6a8a7f4a80eb5
Source RPM  : GeoIP-1.5.0-11.el7.src.rpm
Build Date  : Sat 05 Nov 2016 08:29:17 PM UTC
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem 
Vendor      : CentOS
URL         : http://www.maxmind.com/app/c
Summary     : Library for country/city/organization to IP address or hostname mapping
Description :
GeoIP is a C library that enables the user to find the country that any IP
address or hostname originates from. It uses a file based database that is
accurate as of June 2007 and can optionally be updated on a weekly
basis by installing the GeoIP-update package. This database simply contains IP
blocks as keys, and countries as values. This database should be more complete
and accurate than using reverse DNS lookups.

This package includes GeoLite data created by MaxMind, available from
http://www.maxmind.com/

2) Как установить пакет RPM

Мы можем использовать параметры -ivh для установки определенного пакета, как показано ниже.

$ sudo rpm -ivh GeoIP-1.5.0-11.el7.x86_64.rpm
    Output
    Preparing...                          ################################# [100%]
        package GeoIP-1.5.0-11.el7.x86_64 is already installed

3) Как проверить установленный пакет RPM

Мы можем использовать опцию -q с именем пакета, и она покажет, установлен ли пакет rpm или нет.

$ sudo rpm -q GeoIP
output
GeoIP-1.5.0-11.el7.x86_64

4) Как просмотреть все файлы определенного установленного пакета RPM

Мы можем перечислить все файлы установленных пакетов rpm, используя параметр -ql с командой rpm.

$ sudo rpm -ql GeoIP
output
/etc/GeoIP.conf
/etc/GeoIP.conf.default
/usr/bin/geoiplookup
/usr/bin/geoiplookup6
/usr/bin/geoipupdate
/usr/lib64/libGeoIP.so.1
/usr/lib64/libGeoIP.so.1.5.0
/usr/lib64/libGeoIPUpdate.so.0
/usr/lib64/libGeoIPUpdate.so.0.0.0
/usr/share/GeoIP
/usr/share/GeoIP/GeoIP-initial.dat
/usr/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIPASNum.dat
/usr/share/GeoIP/GeoIPASNumv6.dat
/usr/share/GeoIP/GeoIPCity.dat
/usr/share/GeoIP/GeoIPCityv6.dat
/usr/share/GeoIP/GeoIPCountry.dat
/usr/share/GeoIP/GeoIPCountryv6.dat
/usr/share/GeoIP/GeoIPv6-initial.dat
...

5) Как просмотреть недавно установленные пакеты RPM

Мы можем использовать опцию -qa с –last, она будет перечислять все недавно установленные пакеты rpm.

$ sudo rpm -qa --last
output
GeoIP-1.5.0-11.el7.x86_64                     Sat 01 Sep 2018 11:34:09 AM UTC
wget-1.14-15.el7_4.1.x86_64                   Sun 26 Aug 2018 03:21:02 PM UTC
iwl7265-firmware-22.0.7.0-62.2.el7_5.noarch   Thu 16 Aug 2018 02:10:18 PM UTC
libgomp-4.8.5-28.el7_5.1.x86_64               Thu 16 Aug 2018 02:10:15 PM UTC
iwl2030-firmware-18.168.6.1-62.2.el7_5.noarch Thu 16 Aug 2018 02:10:15 PM UTC
iptables-1.4.21-24.1.el7_5.x86_64             Thu 16 Aug 2018 02:10:15 PM UTC
yum-plugin-fastestmirror-1.1.31-46.el7_5.noarch Thu 16 Aug 2018 02:10:14 PM UTC
iwl6000-firmware-9.221.4.1-62.2.el7_5.noarch  Thu 16 Aug 2018 02:10:14 PM UTC
iwl4965-firmware-228.61.2.24-62.2.el7_5.noarch Thu 16 Aug 2018 02:10:14 PM UTC
iwl105-firmware-18.168.6.1-62.2.el7_5.noarch  Thu 16 Aug 2018 02:10:14 PM UTC
iwl100-firmware-39.31.5.1-62.2.el7_5.noarch   Thu 16 Aug 2018 02:10:13 PM UTC
iwl1000-firmware-39.31.5.1-62.2.el7_5.noarch  Thu 16 Aug 2018 02:10:13 PM UTC
ca-certificates-2018.2.22-70.0.el7_5.noarch   Thu 16 Aug 2018 02:10:13 PM UTC
iwl6000g2b-firmware-17.168.5.2-62.2.el7_5.noarch Thu 16 Aug 2018 02:10:12 PM UTC
...

6) Как установить пакет RPM без зависимостей

Мы можем использовать параметры -ivh с параметрами –nodeps, для которых нет проверки зависимостей.

Чтобы установить конкретный пакет без зависимостей:

$ sudo rpm -ivh --nodeps GeoIP-1.5.0-11.el7.x86_64.rpm
    Output
    Preparing...                          ################################# [100%]
        package GeoIP-1.5.0-11.el7.x86_64 is already installed

7) Как заменить установленный пакет RPM

Мы можем использовать параметры -ivh –replacepkgs для замены определенного пакета, установленного в системе, как показано ниже:

$ sudo rpm -ivh --replacepkgs GeoIP-1.5.0-11.el7.x86_64.rpm
    Output
    Preparing...                          ################################# [100%]
    Updating / installing...
      1:GeoIP-1.5.0-11.el7               ################################# [100%]

Удаление

8) Как удалить пакет RPM

Мы можем использовать -e параметры для удаления определенного пакета, установленного без зависимостей (не проверяя зависимости), как показано ниже:

$ sudo  rpm -e --nodeps GeoIP

Теперь введите команду ниже, чтобы гарантировать себе, что GeoIP не установлен.

$ sudo rpm -q GeoIP
    Output
    package GeoIP is not installed

Обновление

9) Как обновить пакет RPM

Мы можем использовать параметры -Uvh для обновления определенного пакета, как показано ниже:

$ sudo rpm -Uvh GeoIP-1.5.0-11.el7.x86_64.rpm
    Output
    Preparing...                          ################################# [100%]
        package GeoIP-1.5.0-11.el7.x86_64 is already installed

Запросы

10) Как запросить все установленные пакеты

Мы можем использовать параметры -qa для запроса всех установленных пакетов на сервере, как показано ниже.

$ sudo rpm -qa
    Output
    python-firewall-0.4.4.4-14.el7.noarch
    ncurses-base-5.9-14.20130511.el7_4.noarch
    plymouth-0.8.9-0.31.20140113.el7.centos.x86_64
    kbd-misc-1.15.5-13.el7.noarch
    vim-common-7.4.160-4.el7.x86_64
    bash-4.2.46-30.el7.x86_64
    dmidecode-3.0-5.el7.x86_64
    filesystem-3.2-25.el7.x86_64
    kbd-1.15.5-13.el7.x86_64
    vim-enhanced-7.4.160-4.el7.x86_64
    firewalld-0.4.4.4-14.el7.noarch
    ....

11) Как запросить конкретный пакет

Мы можем использовать команду grep для определения того, какой конкретный пакет установлен или нет, как показано ниже.

$ sudo rpm -qa | grep GeoIP
    Output
    GeoIP-1.5.0-11.el7.x86_64

12) Как запросить файл, относящийся к пакету RPM

В примере номер 9 мы выводили  файлы пакета RPM, а теперь мы хотим знать, что файл /usr/lib64/libGeoIP.so.1.5.0 принадлежит RPM-пакету.

$ sudo rpm -qf /usr/lib64/libGeoIP.so.1.5.0
output
GeoIP-1.5.0-11.el7.x86_64

Проверка

13) Как получить информацию для определенного пакета

Мы можем использовать параметры -i вместе с q для получения информации для определенного пакета, как показано ниже:

$ sudo rpm -qi GeoIP
Output
Name        : GeoIP
Version     : 1.5.0
Release     : 11.el7
Architecture: x86_64
Install Date: Thu 16 Aug 2018 02:04:09 PM UTC
Group       : Development/Libraries
Size        : 2905020
License     : LGPLv2+ and GPLv2+ and CC-BY-SA
Signature   : RSA/SHA256, Sun 20 Nov 2016 05:49:19 PM UTC, Key ID 24c6a8a7f4a80eb5
Source RPM  : GeoIP-1.5.0-11.el7.src.rpm
Build Date  : Sat 05 Nov 2016 08:29:17 PM UTC
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem
Vendor      : CentOS
URL         : http://www.maxmind.com/app/c
Summary     : Library for country/city/organization to IP address or hostname mapping
Description :
GeoIP is a C library that enables the user to find the country that any IP
address or hostname originates from. It uses a file based database that is
accurate as of June 2007 and can optionally be updated on a weekly
basis by installing the GeoIP-update package. This database simply contains IP
blocks as keys, and countries as values. This database should be more complete
and accurate than using reverse DNS lookups.

This package includes GeoLite data created by MaxMind, available from http://www.maxmind.com/

14) Как проверить пакет RPM

Мы можем проверить пакет, сравнив информацию об установленных файлах пакета с базой данных rpm, используя опцию -Vp .

$ sudo rpm -Vp GeoIP-1.5.0-11.el7.x86_64.rpm

15) Как проверить все пакеты RPM

Мы можем проверить все установленные пакеты rpm, используя опцию -Va.

$ sudo rpm -Va
output
S.5....T.  c /etc/sysconfig/authconfig
S.5....T.  c /etc/yum.repos.d/CentOS-Base.repo
.M.......  c /etc/machine-id
.M.......  g /etc/udev/hwdb.bin
.M.......  g /var/lib/systemd/random-seed
.M.......  c /etc/shadow
S.5....T.  c /etc/ssh/sshd_config
.M.......  c /etc/audit/rules.d/audit.rules
S.5....T.  c /etc/NetworkManager/NetworkManager.conf
....L....  c /etc/pam.d/fingerprint-auth
....L....  c /etc/pam.d/password-auth
....L....  c /etc/pam.d/postlogin
...

 

You may also like

Leave a Comment