Что такое .deb и .rpm и чем они отличаются от .msi? [закрыто]

30

Что это за форматы файлов и чем они отличаются от .msiформата в Windows? И каковы плюсы и минусы этих схем управления пакетами?

deathholes
источник
.deb и .rpm больше похожи на .msi, чем на .exe.
Игнасио Васкес-Абрамс
примечание: вопрос "каковы плюсы и минусы rpm vs deb / dpkg" в других местах в интернете влечет за собой возможность разжигания пламенной войны.
Strugee

Ответы:

40

Файлы, такие как .debи .rpmболее сродни .zipфайлу. Это дерево каталогов файлов и подкаталогов, которые содержат файлы, относящиеся к конкретному приложению и / или библиотеке файлов.

дистрибутивы

Эти .debфайлы предназначены для распределения Linux , которые вытекают из Debian (Ubuntu, Linux Mint и т.д.). Эти .rpmфайлы используются в первую очередь распределениями , которые вытекают из дистрибутивов Redhat основы (Fedora, CentOS, RHEL), а также в дистрибутиве OpenSUSE.

Что в них особенного?

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

  • создание учетных записей пользователей в системе
  • создание / изменение файлов конфигурации, которые на самом деле не содержатся в файле .debили.rpm
  • установить права собственности на файлы после установки
  • запускать команды от имени root в системе, которая устанавливает пакет
  • зависимости, оба формата могут включать имена или пакеты и / или имена служб, которые они должны присутствовать в системе перед установкой.

Как насчет файлов .msi?

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

  • GUI Framework
  • генерация последовательностей удаления
  • Фреймворк внутри себя - для использования сторонними установщиками
  • Rollbacks
  • Рекламное объявление
  • Пользовательский интерфейс
  • и т.п.

Я бы посоветовал взглянуть на различные страницы Википедии на эти темы, если вы хотите получить более подробное объяснение.

Ссылки

SLM
источник
Поскольку ответ начинается с «Файлы, такие как .deb и .rpm, больше похожи на файл .zip», возможно, стоит упомянуть, что пакеты deb на самом деле являются arархивами, а rpms - (возможно, частично) архивами cpio. В случае с debs легко убедиться, что deb можно распаковать ar -x. В случае rpm я не знаю, возможно ли это.
Фахим Митха
@FaheemMitha:rpm2cpio package.rpm | cpio -idv
ниндзя
@ninjalj - спасибо, я забыл добавить эту команду. Я использовал его для распаковки rpms, когда мне нужен только один или два файла из них. Обычно файлы .spec.
SLM
@ninjalj Спасибо, я этого не знал.
Фахим Митха
31

Другие ответы касаются качеств .debи .rpmсходных с ними .msi. Все они содержат программное обеспечение в сжатом формате, которое может делать некоторые дополнительные вещи. Эти дополнительные вещи, которые уже упоминались, включали добавление пользователей, задачи до и после установки, регистрацию программы в системе (например, реестр Windows, xdg-dirs, OpenRC / systemd init и т. Д.).

Что отличает форматы (и это огромный профессионал), это зависимости. И файлы, .debи .rpmфайлы могут и делать список имен и версий других программ, которые должны быть установлены в качестве обязательного программного обеспечения. Сами по себе это просто информационные, но ...

Вы , как правило , непосредственно не взаимодействуют с .debи .rpmфайлы , как вы делаете с .msiфайлами. На самом деле, как упоминалось ранее, a, .debкак правило, представляет собой просто архив (ar или tar), сжатый с помощью xz с содержащимися файлами в определенной структуре каталогов. Вместо этого вы используете такие инструменты, как dpkgи rpmдля управления этими файлами.

dpkgи rpmустановит содержимое .debи .rpmфайлы и проверит, установлено ли все необходимое программное обеспечение. Запуск этих программ аналогичен нажатию на .msiфайл. Пользователи, однако, обычно не взаимодействуют с dpkgили rpmвместо этого используют apt-getи yumдля установки пакетов. Эти инструменты не имеют точных аналогов на окнах.

Оба apt-getи yumимеют возможность получить файлы с удаленных (или локальных) хранилищ и использовать информацию о зависимостях , хранящуюся в .debи .rpmфайлы для загрузки и установки каких - либо предпосылок не встречались. С этими инструментами мне не нужно знать или беспокоиться о том, какое другое программное обеспечение мне нужно, я могу просто указать apt-get install chromiumи знать, что apt-getбудет гарантировать, что у меня установлены gtk +, alsa, некоторые библиотеки X и т. Д., Без необходимости вручную находить и устанавливать их .debи .rpmфайлы.

apt-getи yumявляется большими два менеджером пакетов, вы также найдете emergeи pacmanтам, которые делают ту же работу , хотя и с различными основными механизмами.

Casey
источник
7
+1 за разговор об управлении зависимостями. Это не следует упускать из виду.
ldrumm
1
примечание: я считаю, что .debs упакованы с помощью arутилиты. понятия не имею почему.
Струджи
1
Кроме того, если вы собираетесь считаться emergeменеджером пакетов, возможно, вам следует также рассмотреть порты BSD (хотя я не знаю о них много, поэтому я не уверен, есть ли у них эквивалент менеджера пакетов в GNU / Linux).
Струджи
3
@strugee правда, я редактировал, чтобы отразить это. Технически, portage - это механизм управления пакетами, emergeи он очень похож на порты. Все это основано на исходном коде и очень настраиваемо, но если команда установит / удалит, обработает зависимости и сохранит базу данных установленных пакетов, я назову ее менеджером пакетов. Хорошие комментарии.
Кейси
@casey: Где я могу получить больше информации о базовых механизмах dpkg и rpm?
Deathholes
4

Он имеет те же функции, что и файл MSI под Windows:

  • он регистрирует программное обеспечение в реестре,
  • он регистрирует, какие файлы были установлены с этим пакетом.

Под Linux они также управляют зависимостями между другими пакетами.

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

Vinz
источник
2

.rpmфайлы представляют собой пакеты RPM, которые относятся к типу пакетов, используемому в дистрибутивах Red Hat и Red Hat (например, Fedora, RHEL, CentOS). .debфайлы представляют собой пакеты DEB, которые представляют собой типы пакетов, используемые Debian и производными Debian (например, Debian, Ubuntu).

После загрузки, они , как правило , устанавливается при помощи rpmи dpkgкоманд , соответственно , на соответствующих дистрибутивах. Другими словами, они представляют собой файлы, которые устанавливаются rpmи dpkgвместо того , .msiили .exeустановочные файлы , которые Исполняемые , которые устанавливают сами.

Пакеты RPM и DEB отличаются от MSI во многих отношениях.

  • Как и выше, это файлы, для установки которых требуются другие инструменты (например, rpmи dpkg).
  • После установки они добавляются в базу данных, чего не происходит в файлах MSI. MSI-файлы содержат список программ в реестре, но удаление с помощью панели управления вряд ли полностью удалит все установленные файлы с диска. Таким образом, когда пакеты RPM и DEB удаляются, все файлы удаляются без ошибок.
  • Обычно они не загружаются и не устанавливаются напрямую, но через диспетчеры пакетов, такие как yumи aptitudeсоответственно - существуют так называемые репозитории, которые предлагают пакеты, скомпилированные для соответствующей системы, и менеджер пакетов автоматически установит все зависимости из данных в репозиториях.
  • Установленные пакеты обычно запускают несколько инструментов настройки, например, если вы устанавливаете GDM в системе, уже установленной с LightDM, инструменты спрашивают, не хотите ли вы использовать GDM из LightDM.
  • При установке пакетов, кроме зависимостей, предлагаются некоторые пакеты, которые показывают, что пакеты не требуются, но могут быть полезны для пользователя.
Дэвидсон Чуа
источник
1

И то, .debи другое .rpm- это пакеты программного обеспечения для дистрибутивов GNU / Linux, содержащие программное обеспечение (программы), приложения и т. Д.), А также информацию для программного обеспечения "* installer *" о самом программном обеспечении и инструкции о том, как устанавливать, что и где правильно.

  • .debПакет программного обеспечения Debian , на основе дистрибутивов Debian. Устанавливается с помощью, например, apt/ aptitude(Командная строка) или графически с помощью, например, « Synaptic », « Ubuntu Software Center », « Gdebi »,…
  • .rpmДиспетчер пакетов Red Hat : в дистрибутивах Linux для Fedora / Red Hat. Устанавливается, например, через yum(командную строку) или графически, например, через " yumex "
  • .msiis → Microsoft Installer : примерно так же, как и выше, для ОС Microsoft Windows

Сами установщики также могут выполнять обслуживание, обновление и / или удаление пакетов. Кроме того: здесь « установщик » означает программное обеспечение для правильного выполнения этих задач - оно также предоставляет упомянутую информацию для самого пользователя, конечно, для выполнения таких задач вручную.

erch
источник
1
PackageKit не является приложением. это библиотека абстракций для разных менеджеров пакетов в разных дистрибутивах.
Струджи
@strugee черт, думал, что это имя. Я действительно надеюсь, yumexчто это правильное имя ... спасибо за подсказку
erch
Я считаю, что в Fedora по умолчанию используется программное обеспечение GNOME.
стружка
@strugee Я какое-то время пробовал Fedora, использовал LXDE и запомнил графический интерфейс для управления пакетами, но имя было ... Я думаю, все, что работает и соответствует
вашим
1

.deb: Пакет Debian, используемый для дистрибутивов Linux на основе Debian, таких как Ubuntu, Linux Mint и т. Д.

.rpm: rpmустановщик для дистрибутивов Linux на базе Red Hat, таких как RHEL, Fedora и CentOS

.msi: Двоичный установщик для платформы Windows

Дживан Рой Дсоуза
источник
добро пожаловать в стек обмена! объяснение того, почему за вас проголосовали: я не из тех, кто проголосовал против, но я думаю, что они так и сделали, потому что вы подразумеваете, что Debian и / или Ubuntu не являются GNU / Linux, и это ложный. они есть. (и существует гораздо больше дистрибутивов, чем только Debian, Ubuntu и Fedora.) Кроме того, вы ничего не объяснили.
Strugee
1
Обновление: отредактировано, чтобы удалить это значение
Дэвидсон Чуа
Я предполагаю, что на самом деле отрицательные отзывы просто дают однострочное описание значения файла, а не фактическое объяснение того, как эти пакеты отличаются друг от друга. Посмотрите на выбранный ответ здесь, это качество, которое они ожидают от ответов :)
Munim