Установка rpm пакетов в Linux. Управление пакетами в RHEL - rpm

Рано или поздно нам приходится устанавливать программное обеспечение не из официальных репозиториев. Там есть далеко не все пакеты, и не всегда есть самые новые версии, только что вышедших программ. Очень часто разработчики размещают на своем официальном сайте пакеты для самых популярных дистрибутивов. Обычно это deb и rpm. Последний встречается немного реже, но если вы используете дистрибутив на базе Red Hat, вам нужен именно этот формат пакетов. Также в сети часто можно найти библиотеки и другие компоненты, которых нет в репозиториях в виде пакетов.

Раньше мы уже рассматривали установку deb пакетов в Ubuntu. А в этой статье будет подробно разобрана установка rpm пакетов в linux.

RPM или RPM Package Manager - это пакетный менеджер, используемый в дистрибутивах Linux, основанных на Red Hat. Такое же название имеет формат файлов этого пакетного менеджера.

Этот формат не очень сильно отличается от того же самого Deb. Вы можете посмотреть их детальное сравнение в статье что . Здесь же, только отмечу, что файл rpm - это обычный cpio архив, в котором содержатся сами файлы программы, а также метаданные, описывающие куда их нужно устанавливать. База всех установленных пакетов находится в каталоге /var/lib/rpm. Из особенностей можно отметить, что rpm не поддерживает рекомендованные пакеты, а также зависимости формата или-или.

Для управления пакетами, так же как и в Debian-системах, здесь существует консольная, низкоуровневая утилита с одноименным названием - rpm. Ее мы и будем рассматривать дальше в статье. В разных системах используются разные пакетные менеджеры, например в Red Hat используется Yum, в Fedora - DNF, а в OpenSUSE - zypper, но во всех этих системах будет работать утилита rpm.

Установка RPM пакетов в Linux

Давайте сначала рассмотрим синтаксис самой утилиты rpm:

$ rpm -режим опции пакет

Утилита может работать в одном из режимов:

  • -q - запрос, получение информации;
  • -i - установка;
  • -V - проверка пакетов;
  • -U - обновление;
  • -e - удаление.

Рассмотрим только самые интересные опции программы, которые понадобятся нам в этой статье:

  • -v - показать подробную информацию;
  • -h - выводить статус-бар;
  • --force - выполнять действие принудительно;
  • --nodeps - не проверять зависимости;
  • --replacefiles - заменять все старые файлы на новые без предупреждений;
  • -i - получить информацию о пакете;
  • -l - список файлов пакета;

Теперь, когда вы уже имеете представление как работать с этой утилитой, может быть рассмотрена установка 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. Но консольных утилит полностью хватает. Если у вас остались вопросы, спрашивайте в комментариях!

Для установки, удаления и обновления программ в дистрибутивах RHEL, Fedora, Mandriva, AltLinux и некоторых других используется менеджер пакетов rpm . Менеджер пакетов rpm позволяет устанавливать, удалять, верифицировать пакеты соответствующего формата, но не имеет средств для автоматического разрешения зависимостей и поиска в репозиториях. Для автоматизации установки пакетов можно воспользоваться программой yum (Yellowdog Update Manager), которая автоматически разрешает зависимости между пакетами и подгружает необходимые файлы. При необходимости собрать пакет с программой из исходных текстов можно воспользоваться rpmbuild . Для этого необходимо подготовить пакет в формате.src.rpm, включающий исходные тексты программы и.spec файл, описывающий процесс сборки.

Структура пакета

Пакеты именуются по следующей схеме: имя-версия-сборка. Распространяются пакеты в виде файлов, в название которых добавляется.архитектура.rpm . Например, squid-2.5.STABLE8–1.FC3.1.i386.rpm расшифровывается так: программа squid , версия 2.5.STABLE8 , сборка 1.FC3.1 , архитектура i386 (неоптимизированное приложение под i386 совместимые процессоры). Номер сборки может включать название дистрибутива (FC3 в данном случае, а может и не включать). Архитектура noarch означает скрипты, независимые от архитектуры процессора. Файлы.src.rpm содержат исходные тексты программ и устанавливаются особым образом.

Каждый пакет содержит файлы программ, библиотек, конфигурации, документации и пр., упакованные архиватором cpio . Также пакет содержит дополнительные секции:

  • PROVIDE – предоставляемая функциональность (например, “mail server”) плюс файлы пакета;
  • REQUIRENAME – необходимые для корректной работы пакеты, файлы и т.п. (то, что требуется в REQUIRENAME , должно присутствовать в PROVIDE ранее установленных пакетов);
  • OBSOLETES – список пакетов, которые могут быть удалены т.к. их функциональность и/или файлы заменяютя данным пакетом;
  • PREIN, POSTIN – скрипты, выполняемые до установки (например, остановка обновляемого демона), и скрипты, выполняемые после установки (например, правка конфигурационных файлов под конкретную машину);
  • PREUN, POSTUN – скрипты, выполняемые при удалении;
  • SUMMARY – краткое описание пакета;
  • DESCRIPTION – подробное описание.

Кроме того, каждый пакет принадлежит к некоторой группе Интернет, Разработка Программ, Развлечения и т.п. Просмотреть секции rpm файла можно в mc.

В дальнейших описаниях <пакет> означает имя пакета без i386.rpm (если установлена одна версия программы, то номер версии и сборки тоже можно опустить), а <файл> означает имя файла.rpm. В качестве файла можно указывать его URL, например, http://download.fedora.redhat.com/pub/fedora/linux/core/updates/3/i386/yum-2.2.0-0.fc3.noarch.rpm

Установка, удаление, обновление программ

Вспомогательные опции: -v – подробный вывод сообщений, -h – показ индикатора прогресса установки.

rpm -ivh <файл>... – установить пакет(ы)
rpm -Uvh <файл>... – обновить пакет(ы), если не установлены – установить
rpm -Fvh <файл>... – обновить уже установленный(е) пакет(ы)
rpm -e <пакет>... – удалить пакет(ы)

Просмотр информации об установленных пакетах или файлах rpm

Вспомогательные опции: -a – все установленные пакеты, -p – информация о файле rpm (в примерах будут приведены не везде).

rpm -q <пакет>... – проверка на наличие установленного пакета и его версии
rpm -qa - список всех пакетов
rpm -qi <пакет>... – DESCRIPTION пакета
rpm -qip <файл>... – DESCRIPTION файла
rpm -qR <пакет>... – REQUIERS пакета
rpm -ql <пакет>... – список файлов пакета
rpm -qf <файл_в_файловой_системе>... – определение принадлежности произвольного файла к одному из установленных пакетов

Проверка целостности rpm пакета

Файлы, размещенные в rpm пакете, сопровождаются вычисленной контрольной суммой и, как правило, подписаны цифровой подписью сборщика пакета. После установки пакета контрольные суммы и подписи сохраняются в базе установленных пакетов. Эти вспомогательные данные позволяют выполнить несколько проверок, например, можно проверить, что пакет создан доверенным издателем и что файлы пакета не были подменены после установки.

Первая проверка очень важна при скачивании пакетов из интернета, а вторая при подозрении на взлом компьютера.

Публичные ключи для проверки подписи автоматически устанавливаются при установке из дистрибутива, а также полуавтоматически добавляются при установке rpm пакетов для подключения репозиториев yum . Файлы с ключами в CentOS устанавливаются в каталог /etc/pki/rpm-gpg/ . Можно добавить ключ вручную, указав путь к локальному файлу или его url. Файл с ключем должен иметь текстовый формат "ASCII armored"

Rpm --import PUBKEY-file

После инсталляции к ключам применимы те же команды, что и к установленным пакетам

rpm -qa gpg-pubkey* – список всех ключей
rpm -qi gpg-pubkey-db42a60e – информация (в том числе имя хозяина) о конкретном ключе
rpm -e gpg-pubkey-db42a60e – удаление ключа

Проверка файла пакета на целостность

Rpm --checksig <файл>

Проверка установленного пакета на целостность

Rpm --verify <пакет>

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

  • S – размер (Size)
  • M – тип файла или права доступа (Mode)
  • 5 – контрольная сумма (MD5)
  • D – мажор или минор устройства устройства (Device)
  • L – содержимое символической ссылки (Link)
  • U – владелец (User)
  • G – группа (Group)
  • T – время модификации (mTime)
  • P – капабилити (caPabilities)

Извлечение и упаковка файлов rpm пакета

Программа rpm2cpio извлекает файлы из RPM пакета в формате архива cpio . Для распаковки файлов вместе со структурой каталогов используется команда cpio с опциями -i – распаковать и -d – создать каталоги:

rpm2cpio <файл.rpm> | cpio -i -d

rpmrebuild

Особые случаи

Eсли пакет уже установлен и его надо переустановить или необходимо понизить версию пакета, то можно к командам инсталяции или обновления добавить опцию --force .

Если установка или удаление пакета формально нарушает зависимости, но известно, что все будет хорошо, то используется опция --nodeps .

Для большинства программ разработчикам нет необходимости писать собственный сценарий установки. Дело в том, что компания RedHat разработала универсальный формат для дистрибутивов дополнительных программ, и этот формат стал стандартом в мире Linux. Такой формат называется RPM (аббревиатура Redhat Pocket Manager , то есть «Обработчик пакетов» компании RedHat). Теперь в любом дистрибутиве Linux есть своя программа Менеджер пакетов, которая устанавливает программы для компьютера . Для ее запуска выберите в стартовом меню пункт Системные и далее Менеджер пакетов. Кроме того, программа автоматически запускается, если щелкнуть кнопкой мыши на имени RPM-файла. Таким образом, процесс установки программы практически упростился до двух щелчков мышью.

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

Чтобы выбрать программный пакет формата RPM для установки, нажмите сочетание клавиш Ctrl-O. Выберите нужный файл. Откроется окно установки показанное на рисунке.

Здесь в левой части окна имеется пять флажков, влияющих на процесс установки:

  • Upgrade (обновить) - если возможно, обновить более старую версию той же программы;
  • Replace files (заменить файлы) - если этот флажок установлен и при установке пакета некоторые файлы совпадут с уже имеющимися, они будут заменены на новые;
  • Replace packages (заменить пакеты) - если в системе имеется более старая версия того же пакета, удалить файлы этой версии;
  • Check dependenciens (проверять зависимости) - очень важный флажок. Как уже говорилось выше, некоторые программы могут использовать библиотеки других программ. Таким образом, если гипотетическая программа ААА использует библиотеки из программы ВВВ, то ее бессмысленно устанавливать, если не установлена программа ВВВ — она все равно не будет работать. Надо сначала установить программу ВВВ. В таких случаях говорят, что программа ААА зависит от программы ВВВ. Флажок Проверять зависимости указывает системе проверить, не зависит ли устанавливаемая программа от какой-либо другой программы, которая в системе не установлена. Кроме того, система проверит, не удалит ли устанавливаемая программа какие-либо файлы, от которых зависят другие программы. Если такая нарушенная зависимость будет найдена, новая программа не будет установлена;
  • Test (тест) - если установить этот флажок, то будет проведена только проверка пакета, а его установка реально произведена не будет.

Чтобы начать установку, нажмите кнопку Установить (Install). При этом в правой части окна будут отображаться сообщения системы, в том числе сообщения об ошибках, если таковые произойдут. И тут возникает вопрос, может ли этот процесс привести к kernel panic (паника ядра). Потому тут следует заметить, что в Linux возникновению паники ядра зачастую предшествует состояние под названием oops. Oops - отклонение от нормальной работы Linux. Когда ядро замечает проблему, на экран выводится сообщение об ошибке. Это сообщение используется разработчиками для исправления программного кода ядра. После oops’а некоторые ресурсы системы могут быть недоступны. Kernel panic чаще всего возникает, когда система пытается использовать несуществующие ресурсы.

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

Если при этом выбрать в левой части окна один из установленных пакетов, то в правой части на вкладке свойства появится его описание, а на вкладке Список файлов - файлы, входящие в состав пакета, с полными путями к ним (то есть с именами папок, в которых они расположены). Впрочем, файлы и описание пакета можно просмотреть не только для установленных пакетов, но и для еще не установленных.

Итак, чтобы установить программу, полученную в формате RPM, достаточно открыть RPM — файл в программе Менеджер пакетов и нажать кнопку Установить. Остальное система сделает сама.

В этой статье мы покажем вам, как вы можете установить RPM пакеты на Ubuntu. Система Ubuntu на базе Debian и на базе RedHat такая как CentOS, в основном аналогичны по своей конструкции. Тем не менее, есть несколько различий здесь и там. Например, система RedHat на основе использование.rpm файлов для представления пакетов программного обеспечения, в то время как система Debian на основе использование файлов.deb. Эти типы файлов отличаются друг от друга по своей конструкции, и не могут быть установлены за пределами их соответствующего типа операционных систем (например, установка файла.deb на , или установка файла.rpm на Ubuntu). Тем не менее, есть способы импорта этих пакетов для других типов систем.

Есть два способа установки пакета RPM: либо путь преобразования файла.rpm в файл.deb, или путем непосредственно установки файла.rpm. Оба метода довольно просты, но установка RPM пакетов в системе может привести к некоторым проблемам, в зависимости от устанавливаемого программного обеспечения (более подробно об этом внизу).

1. Добавьте репозитория Universe

Для первого способа вам понадобится пакет программного обеспечения под названием «Alien», который является программным обеспечением, предназначенным для преобразования файлов.rpm в файлы.deb. Для того, чтобы установить Alien, вам нужно будет добавить репозиторий программного обеспечения под названием «Universe». Откройте терминал и введите:

Sudo add-apt-repository universe

2. Обновление apt-get

Введите пароль учетной записи пользователя, когда терминал предложит вам сделать это. Теперь вам необходимо обновить apt-get для того, чтобы хранилищем можно было воспользоваться.

Sudo apt-get update

3. Установите пакет Alien

Sudo apt-get install alien

4. Преобразование.rpm в.deb

После установки, убедитесь, что пакет программного обеспечения вы загрузили файл.rpm. Перейдите в папку, где находится файл.rpm. Если у вас есть готовый файл.rpm, просто запустите следующую команду:

Sudo alien .rpm

5. Установите преобразованного пакета

Это может занять некоторое время файл для преобразования. Как только это будет сделано, установите файл, обычно с помощью DPKG:

Sudo dpkg -i .deb

Он должен установиться как обычный файл.deb. Теперь вы можете использовать только что установленное программное.

6. Установка пакета RPM непосредственно на систему

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

Sudo alien -i .rpm

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

Возможные проблемы

Имейте в виду, что, как правило, это не хорошая идея, чтобы установить пакеты, которые не были предназначены для вашей системы. Это может привести к проблемам с зависимостями, и может привести к ошибкам или даже аварии. Если программа, которую вы устанавливаете имеет некоторые зависимости, которые должны быть установлены, вам нужно будет установить их первыми.

Все эти конвертированы пакеты только увеличивают шансы на то что программное обеспечение не будет функционировать должным образом, так что это на свой страх и риск. Если нет доступной замены.deb, то компиляции исходного кода на вашем компьютере может быть лучшим выбором, когда это возможно.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: