- Часто используемые команды rpm
- 1. Проверить gpg подпись rpm пакета
- 2. Установка rpm пакета
- 3. Проверить зависимости rpm пакета перед установкой
- 4. Rpm, установка пакетов без зависимостей
- 5. Rpm, проверить установленный пакет
- 6. Rpm, список файлов установленного пакета
- 7. Rpm, список последних установленных пакетов
- 8. Rpm, вывести список всех установленных пакетов
- 9. Обновление rpm пакета
- 10. Удаление rpm пакета
- 11. Удаление rpm пакета без зависимостей
- 12. Rpm, запросить файл принадлежащий пакету
- 13. Rpm, получить информацию об установленном пакете
- 14. Rpm, получить информацию о пакета который еще не установлен
- 15. Rpm, посмотреть файлы документации определенного пакета
- 16. Проверка определенного rpm пакета
- 17. Проверка всех rpm пакетов
- 18. Импорт GPG ключа
- 19. Rpm, посмотреть все импортированные ключи
- 20. Перестроить поврежденную базу данных rpm
- Команда RPM в Linux
- Установка, обновление и удаление пакетов RPM
- Запрос пакетов RPM
- Проверка пакетов RPM
- Выводы
Часто используемые команды rpm
RPM (RedHat Package Manager) — самая популярная утилита управления пакетами для систем на базе RedHat, таких как RHEL, CentOS, Fedora. Инструмент позволяет системным администраторам и пользователям устанавливать, обновлять, удалять, запрашивать, проверять и управлять пакетами системного программного обеспечения в операционных системах Unix/Linux. Менеджер пакетов RPM хранит информацию об установленных в системе приложениях в свой базе данных /var/lib/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 -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)-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# rpm -q fake package fake is not installed6. Rpm, список файлов установленного пакета
# 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.png7. Rpm, список последних установленных пакетов
# rpm -qa --last htop-2.0.2-1.el7.x86_64 Sat 03 Jun 2017 06:20:07 PM MSK8. 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:
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 используется для более подробного вывода отладочных сообщений:
11. Удаление rpm пакета без зависимостей
Параметр --nodeps принудительно удаляет пакет rpm из системы. Имейте в виду, что удаление определенного пакета может нарушить работу других рабочих приложений.
12. Rpm, запросить файл принадлежащий пакету
Если понадобилось узнать какому пакету принадлежит конкретный файл, используется опция -qf (query file):
# rpm -qf /etc/my.cnf mariadb-libs-5.5.52-1.el7.x86_6413. 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):
15. Rpm, посмотреть файлы документации определенного пакета
# 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.gz16. Проверка определенного rpm пакета
# rpm -Vp sqlbuddy-1.3.3-1.noarch.rpm S.5. T. c /etc/httpd/conf.d/sqlbuddy.conf17. Проверка всех 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.conf18. Импорт GPG ключа
Для проверки пакетов RHEL/CentOS/Fedora, нужно импортировать GPG ключ. Для этого выполните следующую команду:
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-719. Rpm, посмотреть все импортированные ключи
# rpm -qa gpg-pubkey* gpg-pubkey-7bd9bf62-5762b5f8 gpg-pubkey-352c64e5-52ae6884 gpg-pubkey-f4a80eb5-53a7ff4b gpg-pubkey-810f8996-552b1d9220. Перестроить поврежденную базу данных rpm
Иногда база данных rpm может быть повреждена, при этом rpm не может нормально функционировать. Если подобное случилось, нужно перестроить базу данных rpm:
# cd /var/lib/rpm # rm -f __db.* # rpm --rebuilddbКоманда RPM в Linux
Менеджер пакетов RPM (RPM) — это мощная система управления пакетами, используемая Red Hat Linux и ее производными, такими как CentOS и Fedora. RPM также относится к команде rpm и формату файла .rpm . Пакет RPM состоит из архива файлов и метаданных, включая такую информацию, как зависимости и место установки.
В этом руководстве мы поговорим о том, как использовать команду rpm для установки, обновления, удаления, проверки, запроса и иного управления пакетами RPM.
Установка, обновление и удаление пакетов RPM
Обычно для установки нового пакета в дистрибутивах на основе Red Hat вы используете команды yum или dnf , которые могут разрешить и установить все зависимости пакетов.
Вы всегда должны предпочитать использовать yum или dnf rpm при установке, обновлении и удалении пакетов.
Перед установкой пакета RPM вы должны сначала загрузить пакет в свою систему с помощью браузера или инструментов командной строки, таких как curl или wget .
При установке пакетов RPM убедитесь, что они созданы для вашей системной архитектуры и вашей версии CentOS . Будьте особенно осторожны при замене или обновлении важных системных пакетов, таких как glibc, systemd или других служб и библиотек, которые необходимы для правильного функционирования вашей системы.
Только root или пользователи с привилегиями sudo могут устанавливать или удалять пакеты RPM.
Чтобы установить пакет RPM с rpm , используйте параметр -i , за которым следует имя пакета:
Параметр -v указывает rpm показывать подробный вывод, а параметр -h показывает индикатор выполнения, отмеченный хешем.
Вы можете пропустить загрузку и указать URL-адрес RPM-пакета команде rpm :
sudo rpm -ivh https://example.com/package.rpm
Чтобы обновить пакет RPM, используйте параметр -U . Если пакет не установлен, он будет установлен:
Если пакет, который вы устанавливаете или обновляете, зависит от других пакетов, которые в настоящее время не установлены, rpm отобразит список всех недостающих зависимостей. Вам придется скачать и установить все зависимости вручную.
Чтобы установить пакет RPM без установки всех необходимых зависимостей в системе, используйте параметр --nodeps :
sudo rpm -Uvh --nodeps package.rpm
Чтобы удалить (стереть) пакет RPM, используйте параметр -e :
Параметр --nodeps также полезен, когда вы хотите удалить пакет, не удаляя его зависимости:
sudo rpm -evh --nodeps package.rpm
Параметр --test указывает rpm запускать команду установки или удаления, фактически ничего не делая. Он только показывает, будет ли команда работать или нет:
sudo rpm -Uvh --test package.rpm
Запрос пакетов RPM
Параметр -q указывает команде rpm выполнить запрос.
Чтобы запросить (найти), установлен ли определенный пакет, передайте имя пакета команде rpm -q . Следующая команда покажет вам, установлен ли в системе пакет OpenJDK 11 :
sudo rpm -q java-11-openjdk-devel
Если пакет установлен, вы увидите что-то вроде этого:
java-11-openjdk-devel-11.0.4.11-0.el8_0.x86_64
Передайте -i чтобы получить больше информации о запрошенном пакете:
sudo rpm -qi java-11-openjdk-devel
Чтобы получить список всех файлов в установленном пакете RPM:
Если вы хотите узнать, к какому установленному пакету принадлежит конкретный файл, введите:
Чтобы получить список всех установленных пакетов в вашей системе, используйте параметр -a :
Проверка пакетов RPM
При проверке пакета команда rpm проверяет, существует ли каждый файл, установленный пакетом, в системе, дайджест файла, право собственности, разрешения и т. Д.
Чтобы проверить установленный пакет, используйте параметр -V . Например, чтобы проверить пакет openldap, вы должны запустить:
sudo rpm -V openldap-2.4.46-9.el8.x86_64
Если проверка прошла успешно, команда не выведет никаких результатов. В противном случае, если некоторые из проверок не пройдут, отобразится символ, указывающий на неудачный тест.
Например, следующий результат показывает, что mTime файла был изменен («T»):
Обратитесь к странице руководства RMP о том, что означает каждый символ.
Чтобы проверить все установленные пакеты rpm, выполните следующую команду:
Выводы
rpm — это низкоуровневый инструмент командной строки для установки, запроса, проверки, обновления и удаления пакетов RMP. При установке пакетов RPM следует предпочесть использование yum или dnf поскольку они автоматически разрешают все зависимости за вас.
Для получения дополнительных сведений обо всех доступных параметрах команд введите в терминале man rpm или посетите веб-сайт RPM.org .
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.