Команда RPM: 15 примеров для установки, удаления, обновления, запроса пакетов RPM

Команда RPM используется для установки, удаления, обновления, запроса, вывода списка и проверки пакетов RPM в вашей системе Linux.

RPM расшифровывается как R ed Hat P ackage M anager.

С правами суперпользователя вы можете использовать команду rpm с соответствующими параметрами для управления программными пакетами RPM.

В этой статье мы рассмотрим 15 практических примеров команды rpm.

Давайте возьмем обороты Mysql Client и рассмотрим все наши примеры.

1. Установка пакета RPM с помощью rpm -ivh

Имя файла RPM имеет имя пакета, версию, версию и имя архитектуры.

Например, в файле MySQL-client-3.23.57-1.i386.rpm:

  • MySQL-client- имя пакета
  • 3.23.57 — версия
  • 1 — релиз
  • i386 — Архитектура

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

 

 

Следующая команда rpm устанавливает клиентский пакет Mysql.

# rpm -ivh  MySQL-client-3.23.57-1.i386.rpm
Preparing...                ########################################### [100%]
   1:MySQL-client           ########################################### [100%]

Команда rpm и опции

  • -i: установить пакет
  • -v: verbose
  • -h: печатать хеш-метки, когда архив пакета распакован.

Вы также можете использовать dpkg в Debian , pkgadd в Solaris , depot в HP-UX для установки пакетов.

2. Запросите все RPM-пакеты, используя rpm -qa

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

# rpm -qa
cdrecord-2.01-10.7.el5
bluez-libs-3.7-1.1
setarch-2.0-1.1
  • -q операция запроса
  • -a запрашивает все установленные пакеты

Чтобы определить, установлен ли конкретный пакет rpm в вашей системе, объедините команды rpm и grep, как показано ниже. Следующая команда проверяет, установлен ли пакет cdrecord в вашей системе.

# rpm -qa | grep 'cdrecord'

3. Запросите конкретный RPM-пакет, используя rpm -q

В приведенном выше примере перечислены все установленные на данный момент пакеты. После установки пакета для проверки установки вы можете запросить конкретный пакет и проверить, как показано ниже.

# rpm -q MySQL-client
MySQL-client-3.23.57-1

# rpm -q MySQL
package MySQL is not installed

Примечание. Для запроса пакета необходимо указать точное имя пакета. Если имя пакета неверно, команда rpm сообщит, что пакет не установлен.

4. Запрос пакетов RPM в различном формате с использованием rpm –queryformat

Команда Rpm предоставляет опцию –queryformat, которая позволяет вам давать имена тегов заголовков, чтобы вывести список пакетов. Вложите тег заголовка с помощью {}.

# rpm -qa --queryformat '%{name}-%{version}-%{release} %{size}\n'
cdrecord-2.01-10.7 12324
bluez-libs-3.7-1.1 5634
setarch-2.0-1.1 235563
#

5. К какому пакету RPM относится файл? — используйте rpm -qf

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

В следующем примере показано, что файл /usr/bin/mysqlaccess является частью оборотов MySQL-client-3.23.57-1.

# rpm -qf /usr/bin/mysqlaccess
MySQL-client-3.23.57-1
  • -f: имя файла

6. Найдите документацию пакета, которому принадлежит файл, используя rpm -qdf

Используйте следующую информацию, чтобы узнать список документации для пакета, которому принадлежит файл. Следующая команда дает расположение всех страниц справочника, связанных с пакетом mysql.

# rpm -qdf /usr/bin/mysqlaccess
/usr/share/man/man1/mysql.1.gz
/usr/share/man/man1/mysqlaccess.1.gz
/usr/share/man/man1/mysqladmin.1.gz
/usr/share/man/man1/mysqldump.1.gz
/usr/share/man/man1/mysqlshow.1.gz
  • -d: ссылается на документацию.

7. Информация об установленном RPM-пакете с использованием rpm -qi

Команда rpm предоставляет много информации об установленном пакете, используя rpm -qi, как показано ниже:

# rpm -qi MySQL-client
Name        : MySQL-client                 Relocations: (not relocatable)
Version     : 3.23.57                           Vendor: MySQL AB
Release     : 1                             Build Date: Mon 09 Jun 2003 11:08:28 PM CEST
Install Date: Mon 06 Feb 2010 03:19:16 AM PST               Build Host: build.mysql.com
Group       : Applications/Databases        Source RPM: MySQL-3.23.57-1.src.rpm
Size        : 5305109                          License: GPL / LGPL
Signature   : (none)
Packager    : Lenz Grimmer
URL         : http://www.mysql.com/
Summary     : MySQL - Client
Description : This package contains the standard MySQL clients.

Если у вас есть RPM-файл, который вы хотите установить, но хотите узнать больше информации о нем перед установкой, вы можете сделать следующее:

# rpm -qip MySQL-client-3.23.57-1.i386.rpm
Name        : MySQL-client                 Relocations: (not relocatable)
Version     : 3.23.57                           Vendor: MySQL AB
Release     : 1                             Build Date: Mon 09 Jun 2003 11:08:28 PM CEST
Install Date: (not installed)               Build Host: build.mysql.com
Group       : Applications/Databases        Source RPM: MySQL-3.23.57-1.src.rpm
Size        : 5305109                          License: GPL / LGPL
Signature   : (none)
Packager    : Lenz Grimmer
URL         : http://www.mysql.com/
Summary     : MySQL - Client
Description : This package contains the standard MySQL clients.
  • -i: просмотреть информацию об оборотах
  • -p: указать имя пакета

8. Перечислите все файлы в пакете, используя rpm -qlp

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

$ rpm -qlp ovpc-2.1.10.rpm
/usr/bin/mysqlaccess
/usr/bin/mysqldata
/usr/bin/mysqlperm
.
.
/usr/bin/mysqladmin
  • q: запрос файла rpm
  • l: список файлов в пакете
  • p: указать название пакета

Вы также можете извлечь файлы из пакета RPM, используя rpm2cpio, как мы уже обсуждали ранее.

9. Перечислите пакеты зависимостей, используя rpm -qRP

Чтобы просмотреть список пакетов, от которых зависит этот пакет,

# rpm -qRp MySQL-client-3.23.57-1.i386.rpm
/bin/sh
/usr/bin/perl

10. Узнайте состояние файлов в пакете, используя rpm -qsp

Следующая команда должна найти состояние (установлено, заменено или нормальное) для всех файлов в пакете RPM.

# rpm -qsp MySQL-client-3.23.57-1.i386.rpm
normal        /usr/bin/msql2mysql
normal        /usr/bin/mysql
normal        /usr/bin/mysql_find_rows
normal        /usr/bin/mysqlaccess
normal        /usr/bin/mysqladmin
normal        /usr/bin/mysqlbinlog
normal        /usr/bin/mysqlcheck
normal        /usr/bin/mysqldump
normal        /usr/bin/mysqlimport
normal        /usr/bin/mysqlshow
normal        /usr/share/man/man1/mysql.1.gz
normal        /usr/share/man/man1/mysqlaccess.1.gz
normal        /usr/share/man/man1/mysqladmin.1.gz
normal        /usr/share/man/man1/mysqldump.1.gz
normal        /usr/share/man/man1/mysqlshow.1.gz

11. Проверьте конкретный пакет RPM, используя rpm -Vp

Проверка пакета сравнивает информацию об установленных файлах в пакете с информацией о файлах, взятых из метаданных пакета, хранящихся в базе данных rpm. В следующей команде -V предназначен для проверки, а параметр -p используется для указания имени пакета для проверки.

# rpm -Vp MySQL-client-3.23.57-1.i386.rpm
S.5....T c        /usr/bin/msql2mysql
S.5....T c        /usr/bin/mysql
S.5....T c        /usr/bin/mysql_find_rows
S.5....T c        /usr/bin/mysqlaccess

Символ в вышеприведенном выводе обозначает следующее:

  • Размер файла S отличается
  • Режим M отличается (включает разрешения и тип файла)
  • 5 MD5 сумма отличается
  • D Несоответствие основного / младшего номера устройства
  • L readlink (2) несоответствие пути
  • U Владение пользователем отличается
  • Собственность G Group отличается
  • T mTime отличается

12. Проверьте файл владения пакетом, используя rpm -Vf

Следующая команда проверяет пакет, которому принадлежит данное имя файла.

# rpm -Vf /usr/bin/mysqlaccess
S.5....T c /usr/bin/mysql
#

13. Обновление RPM-пакета с использованием rpm -Uvh

Обновление пакета похоже на его установку, но RPM автоматически удаляет существующие версии пакета перед установкой новой. Если старая версия пакета не найдена, опция обновления все равно установит ее.

# rpm -Uvh MySQL-client-3.23.57-1.i386.rpm
Preparing... 			########################################### [100%]
1:MySQL-client          ###########################################

14. Удаление пакета RPM с помощью rpm -e

Чтобы удалить установленный пакет rpm, используйте -e, как показано ниже. После удаления вы можете сделать запрос, используя rpm -qa, и проверить удаление.

# rpm -ev MySQL-client

15. Проверка всех пакетов RPM с помощью rpm -Va

Следующая команда проверяет все установленные пакеты.

# rpm -Va
S.5....T c /etc/issue
S.5....T c /etc/issue.net
S.5....T c /var/service/imap/ssl/seed
S.5....T c /home/httpd/html/horde/ingo/config/backends.php
.
.
S.5....T c /home/httpd/html/horde/ingo/config/prefs.php
S.5....T c /etc/printcap