Главная >> Сравнения >> Что лучше deb или rpm

Что лучше deb или rpm

Установка программного обеспечения - очень важный момент в работе с операционной системой. Сейчас есть две самые распространенные системы установки программного обеспечения. Это используемая в Debian и всех ее производных, в том числе и в Ubuntu - deb, а также разработанная в RedHat и используемая в Red Hat и всех основанных на ней дистрибутивов - rpm.

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


Содержание статьи

Основы

С точки зрения пользователя, эти два варианта установки пакетов не имеют очень больших различий. Оба файла и Deb и Rpm - это всего лишь архивы, созданные с помощью утилиты ar. Эти архивы включают в себя файлы программ, исполняемые файлы, библиотеки, или файлы конфигурации. Кроме этого, в каждый пакет входят метаданные системы управления пакетами, именно этим и отличаются rpm и deb. Собственно файлы пакетов отличаются в основном только этим, но еще есть система управления пакетами. А там уже различий в базе данных намного больше.

Давайте рассмотрим каждую систему управления пакетами подробнее, а затем сравним что же в них особенного, и что лучше rpm или deb.

RPM (Red Hat Package Manager)

Как мы уже говорили, RPM - это менеджер пакетов, используемый в операционных системах, основанных на Red Hat, это вся ветка дистрибутивов: Fedora, OpenSUSE, Red Hat, CentOS и т д. Изначально этот пакетный менеджер был разработан в компании Red Hat еще в 1997 году и только для их дистрибутива, но затем он распространился и в другие операционные системы. Вместо обычного сжатия здесь используется сжатие gzip по алгоритму cpio и особый формат файла архива, его мы рассмотрим ниже. Здесь в сравнении rpm или deb, первый кажется лучше, но не все так просто, если в системе нет нужных утилит, то вы не сможете распаковать такой пакет. Кроме cpio могут использоваться и другие алгоритмы сжатия, например, lzma или xz. В последнее время все программное обеспечение подписывается ключами для удостоверения подлинности, вот и RPM поддерживает подпись с помощью GPG и MD5. Технология PatchRPMs или DeltaRPMs позволяет грамотно обновлять RPM пакеты без больших затрат трафика.

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

Для работы с RPM могут использоваться несколько различных пакетных менеджеров, это универсальная утилита rpm, пакетный менеджер zypper в OpenSUSE, dnf в Fedora, urpmi  в Mageia, yum - во многих дистрибутивах, основанных на Fedora.

Рассмотрим основные особенности RPM:

  • Автоматическое разрешение зависимостей в большинстве случаев корректно
  • Файл архива имеет специальный формат
  • Не поддерживается реализация зависимостей с выбором завистимости от пакет1 или пакет2.
  • Не поддерживаются рекомендованные пакеты
  • Позволяет настроить зависимость от файла, а не пакета
  • Все данные об установленных пакетах хранятся в базе данных поэтому при надобности можно проверить контрольные суммы
  • Поддерживаются сценарии как до, так и после установки программ
  • Поддерживается формат SRPM, который содержит в себе исходники программы все патчи с инструкции по сборке, позволяющие собрать программу из исходников на локальной машине.
  • Отличная поддержка Multilib пакетов

Deb (Debian Package Manager)

Файлы deb - это архивы, созданные с помощью утилиты ar. Они могут быть сжаты с помощью GZIP, Bzip2, lzma, или XZ. Чаще всего для управления пакетами deb в терминале используется утилита dpkg, Но могут и другие, например, gdebi, apt, aptitude и т д. Deb пакеты используются для установки программного обеспечения во многих операционных системах, основанных на Debian, это ветка Ubuntu со многими основанными на ней дистрибутивами и так далее. Поскольку Ubuntu в последнее время набирает популярность среди новичков, то пакетов для нее становится больше.

Из особенностей системы управления пакетами DEB можно назвать использование приоритетов для классификации пакетов по важности, а также поддержку рекомендованных пакетов. Это пакеты, которые не находятся в зависимостях программы, но желательны для установки вместе с ней. Рекомендованные утилиты устанавливаются автоматически в таком инструменте, как apt. Чтобы сравнить rpm vs deb рассмотрим особенности deb:

  • Файл пакета - обычный архив
  • Поддержка приоритетов для пакетов различной важности
  • Поддержка рекомендованных пакетов
  • Не поддерживаются файловые зависимости
  • Не поддерживается технология Delta для экономии трафика

Аналоги команд

Давайте рассмотрим аналоги команд для выполнения одних и тех же действий в этих системах управления пакетами с помощью утилит rpm и dpkg:

Установка пакета:

sudo rpm -i пакет.rpm

sudo dpkg -i пакет.deb

Обновление пакета:

sudo rpm -i пакет.rpm

sudo dpkg -i пакет.deb

Удалить установленный пакет:

sudo rpm -e пакет.rpm

sudo dpkg -r пакет.deb

Показать список установленных пакетов:

sudo rpm -qa

sudo dpkg -l

Показать все файлы установленного пакета:

sudo rpm -ql пакет

sudo dpkg -L пакет

Посмотреть информацию о пакете:

sudo rpm -qi пакет

sudo dpkg -p пакет

Показать информацию о файле пакета:

sudo rpm -qpi файл.rpm

sudo dpkg -l файл.deb

Список файлов в пакете:

sudo rpm -qpl файл.rpm

sudo dpkg -l файл.deb

Проверить пакет:

sudo rpm -V пакет

Проверить все установленные пакеты:

sudo rpm -Va

Выводы

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

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

Оставьте свой Email для того чтобы получать анонсы новых статей и полезную информацию о Linux по электронной почте


Pеклама
Посмотреть детали

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

12 комментариев к “Что лучше deb или rpm”

    • Очепятка:
      Не поддерживается реализация зависимостей с выбором ЗАВИСТИ от пакет1 или пакет2.

      Вопрос: а в листингах при сравнении команд точно надо писать:
      $

      $$ команда
      или для удобства прочтения - лучше было бы вообще друг под другом расположить:
      RPM-based: [sudo rpm -qpl файл.rpm]
      DEB-based: [sudo dpkg -l файл.deb]

      Ответить
  1. 1) "Оба файла и Deb и Rpm - это всего лишь архивы, созданные с помощью утилиты ar" ??? - для deb ar, для rpm -cpio
    2) Перепутаны пакетные менеджеры
    - первый уровень, это утилиты rpm, rpmi (кстати есть и такой) и pkg
    - второй уровень - zypper, yum,.... apt. Кстати, apt умеет работать и с rpm, и есть несколько веток дистрибутивов, которые используют связку rpm - apt

    ps Есть ещё уровень GUI - synatic, aptitude, uasm и т.п.

    Ответить
  2. Я пользуюсь Opensuse, единственный минус, который заметил это, что rpm просто немного труднее найти.

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

    Ответить

Оставьте комментарий