Менеджер пакетов 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, за которой следует имя пакета:
1 | sudo rpm -ivh package.rpm |
Опция -v указывает rpm на показ вербозного вывода, а опция -h - на показ прогресс-бара с хэш-меткой.
Вы можете пропустить часть загрузки и указать URL-адрес пакета RPM команде rpm:
1 | sudo rpm -ivh https://example.com/package.rpm |
Чтобы обновить пакет RPM, используйте опцию -U. Если пакет не установлен, он будет установлен:
1 | sudo rpm -Uvh package.rpm |
Если устанавливаемый или обновляемый пакет зависит от других пакетов, которые в настоящее время не установлены, rpm отобразит список всех отсутствующих зависимостей. Вам придется загрузить и установить все зависимости вручную.
Чтобы установить пакет RPM без установки всех необходимых зависимостей в системе, используйте опцию --nodeps:
1 | sudo rpm -Uvh --nodeps package.rpm |
Чтобы удалить (стереть) пакет RPM, используйте опцию -e:
1 | sudo rpm -e package.rpm |
Опция --nodeps также полезна, когда вы хотите удалить пакет без удаления его зависимостей:
1 | sudo rpm -evh --nodeps package.rpm |
Опция --test указывает rpm на выполнение команды установки или удаления без фактического выполнения каких-либо действий. Она только показывает, будет ли команда работать или нет:
1 | sudo rpm -Uvh --test package.rpm |
Запрос пакетов RPM
Параметр -q указывает команде rpm на выполнение запроса.
Чтобы запросить (найти), установлен ли определенный пакет, передайте команде rpm -q имя пакета. Следующая команда покажет, установлен ли в системе пакет OpenJDK 11:
1 | sudo rpm -q java-11-openjdk-devel |
Если пакет установлен, вы увидите примерно следующее:
1 | java-11-openjdk-devel-11.0.4.11-0.el8_0.x86_64 |
Передайте -i для получения дополнительной информации о запрашиваемом пакете:
1 | sudo rpm -qi java-11-openjdk-devel |
Чтобы получить список всех файлов в установленном пакете RPM:
1 | sudo rpm -ql package |
Если вы хотите узнать, к какому установленному пакету относится конкретный файл, введите:
1 | sudo rpm -qf /path/to/file |
Чтобы получить список всех установленных пакетов в вашей системе, используйте опцию -a:
1 | sudo rpm -qa |
Проверка пакетов RPM
При проверке пакета команда rpm проверяет, существует ли в системе каждый файл, установленный пакетом, его дайджест, права собственности, разрешения и т.д.
Чтобы проверить установленный пакет, используйте опцию -V. Например, чтобы проверить пакет openldap, выполните команду:
1 | sudo rpm -V openldap-2.4.45-8.el8.x86_64 |
Если проверка пройдена, команда не выведет никакого результата. В противном случае, если какая-то из проверок не прошла, она выведет символ, указывающий на неудачную проверку.
Например, следующий вывод показывает, что mTime файла был изменен ("T"):
1 | .......T. c /etc/openldap/ldap.conf |
О том, что означает каждый символ, читайте на странице руководства RMP.
Чтобы проверить все установленные пакеты rpm, выполните следующую команду:
1 | sudo rpm -Va |