Рано или поздно нам приходится устанавливать программное обеспечение не из официальных репозиториев. Там есть далеко не все пакеты, и не всегда есть самые новые версии, только что вышедших программ. Очень часто разработчики размещают на своем официальном сайте пакеты для самых популярных дистрибутивов. Обычно это deb и rpm.
Последний встречается немного реже, но если вы используете дистрибутив на базе Red Hat Enterprise Linux, вам нужен именно этот формат пакетов. Также в сети часто можно найти библиотеки и другие компоненты, которых нет в репозиториях в виде пакетов. Раньше мы уже рассматривали установку deb пакетов в Ubuntu. А в этой статье будет подробно разобрана установка rpm пакетов в linux.
Содержание статьи
Что такое RPM?
RPM или RPM Package Manager - это пакетный менеджер, используемый в дистрибутивах Linux, основанных на Red Hat. Такое же название имеет формат файлов этого пакетного менеджера.
Этот формат не очень сильно отличается от того же самого Deb. Вы можете посмотреть их детальное сравнение в статье что лучше *.deb или *.rpm. Здесь же, только отмечу, что файл rpm - это обычный cpio архив, в котором содержатся сами файлы программы, а также метаданные, описывающие куда их нужно устанавливать. База всех установленных пакетов находится в каталоге /var/lib/rpm. Из особенностей можно отметить, что rpm не поддерживает рекомендованные пакеты, а также зависимости формата или-или.
Для управления пакетами, так же как и в Debian-системах, здесь существует консольная, низкоуровневая утилита с одноименным названием - rpm. Ее мы и будем рассматривать дальше в статье. В разных системах используются разные пакетные менеджеры, например в Red Hat используется Yum, в Fedora - DNF, а в OpenSUSE - zypper, но во всех этих системах будет работать утилита rpm.
Установка RPM пакетов в Linux
Давайте сначала рассмотрим синтаксис самой утилиты rpm:
$ rpm -режимопции пакет
Утилита может работать в одном из режимов:
- -q, --query - запрос, получение информации;
- -i, --install - установка;
- -V, --verify - проверка пакетов;
- -U, --upgrade - обновление;
- -e, --erase - удаление.
Рассмотрим только самые интересные опции программы, которые понадобятся нам в этой статье:
- -v - показать подробную информацию;
- --vv - выводить отладочную информацию;
- --quiet - выводить как можно меньше информации;
- -h - выводить статус-бар;
- --percent - выводить информацию в процентах о процессе распаковки;
- --force - выполнять действие принудительно;
- --nodeps - не проверять зависимости;
- --replacefiles - заменять все старые файлы на новые без предупреждений;
- -i - получить информацию о пакете;
- -l - список файлов пакета;
- -R - вывести пакеты, от которых зависит этот пакет;
Теперь, когда вы уже имеете представление как работать с этой утилитой, может быть рассмотрена установка rpm пакета в Linux. Самая простая команда установки будет выглядеть вот так:
sudo rpm -i имя_пакета.rpm
Для работы с командной текущей директорией должна быть папка с пакетом. Здесь мы устанавливаем режим установки и передаем файл пакета. При успешной установке утилита не выведет ничего, если произойдет ошибка, вы об этом узнаете.
Для того чтобы посмотреть более подробную информацию в процессе установки используйте опцию -v:
sudo rpm -iv имя_пакета.rpm
Также вы можете включить отображение статус бара в процессе установки:
sudo rpm -ivh имя_пакета.rpm
Чтобы проверить установлен ли пакет, нам уже нужно использовать режим запроса:
sudo rpm -q имя_пакета
Также сразу можно удалить пакет, если он не нужен:
sudo rpm -e имя_пакета
Но у rpm так же как и у dpkg, есть один существенный недостаток. Программа не может разрешать зависимости. В случае отсутствия нужного пакета в системе, вы просто получите сообщение об ошибке и пакет не установится.
Для автоматической загрузки зависимостей во время выполнения установки rpm linux нужно использовать пакетный менеджер дистрибутива. Рассмотрим несколько команд для самых популярных RPM дистрибутивов. В RedHat и других дистрибутивах, использующих Yum используйте такую команду:
sudo yum --nogpgcheck localinstall имя_пакета.rpm
Первая опция отключает проверку GPG ключа, а вторая говорит, что мы будем выполнять установку локального пакета. В Fedora, с помощью dnf все делается еще проще:
sudo dnf install имя_пакета.rpm
Пакетный менеджер Zypper и OpenSUSE справляются не хуже:
sudo zypper install имя_пакета.rpm
Вот так очень просто выполняется установка rpm с зависимостями. Но не всем нравится работать в консоли, многие новые пользователи хотят использовать графический интерфейс для решения всех задач, в том числе и этой. Дальше мы рассмотрим несколько таких утилит.
Установка RPM файла в GUI
Если вы используете OpenSUSE, то это делается очень просто. Универсальный конфигуратор системы YaST, кроме всего прочего позволяет установить rpm пакеты. Вы можете сделать это с помощью файлового менеджера, выбрав пункт контекстного меню для файла открыть с помощью Yast или выполнив команду:
yast2 -i имя_пакета.rpm
В Fedora для тех же целей вы можете использовать менеджер приложений дистрибутива. Раньше было еще несколько универсальных утилит для решения этой задачи, но сейчас они уже все устарели.
Выводы
Теперь вы знаете как выполняется установка rpm файла в Linux. На самом деле это очень просто и даже существует не только один способ, а целых несколько. Хотя графических утилит здесь немного меньше чем в Ubuntu. Но консольных утилит полностью хватает. Если у вас остались вопросы, спрашивайте в комментариях!
Спасибо но не получается, хоть бы на примере любого пакета показали
File "viber.rpm" not found.
Статья незачет. Как вы умеете так писать,что после ваших инструкций остается много белых пятен. Не устанавливает. Пишет файл не найден.
https://losst.pro/put-k-fajlu-v-linux
так пищут что для того чтобы ее всадить в Дебиан нужно всего навсего переконструировать и всё
admin: Меня интересует такой вопрос : а наоборот возможно т.е с Ubunt'ы полноценно deb пакет в Fedor'у установить?? Собрать из требла не удаётся из-за отсутвия библиотек в зависемостях и отсутвия в Fedore пакета с нужной версией .При установке компиляция крошеться т.к нет нужной версии пакета из-за которой функциональность не достаточна для сборки полноценного приложения. Ps Слышыл что есть универсальные траблы для сборки пакетов (Snap). подходящие для всех дестрибутивов Linux но вот где их искать я так и не понял. Сам Snap у меня уже установлен. Буду очень рад если в ближайшее время Вы осветите эту тему у себя на сайте. Всего доброго!!
Добрый день!
Нужно было установить на CentOS 8 старую версию PostgreSQL - 9.4. Скачал нужные rpm-файлы и сложил в одну папку. Предварительно отключил текущую версию:
#dnf -qy module disable postgresql
Из каталога c rpm-ми запускаю команду:
#dnf install postgresql94-server-9.4.26-1PGDG.rhel8.x86_64.rpm
Происходит определение зависимостей и выдаётся ошибка, что не может их ниоткуда взять.
Как указать, что они лежат здесь же?
Вопрос снимается. Не нужно отключать модуль postgresql! Тогда всё срабатывает корректно.
надо сначала зайти в директорию где лежит файл и все прекрасно установиться
cd /home/Downloads
sudo zypper install имя_пакета.rpm
open suse 15.2 все стало как надо
Нихрена не устанавливается в этом SUSE..
sudo zypper in /home/user1/LocalRPMS/b.rpm
ответ:
Поставщик "_tmpRPMcache_:b=0:1.24.6-1" не найден.
С помощью пакета alien можно трансформировать исходные пакеты в форматы RPM, Debian и Slackware соответственно.
Михаил:при конвертации в alien полноценных пакетов вы не получите причины: разная организация файловой системы для дистрибутивов (для одного дистрибутива директория к прим. может быть /user/share/bin в другом /usr/local/bin) , зависимости между пакетами которых может просто не быть в вашем дистрибутиве, разные именa одного и того-же пакета для разных дистрибутивов.