Що таке .deb і .rpm і чим вони відрізняються від .msi? [зачинено]


30

Що це за формати файлів і чим вони відрізняються від .msiформату в Windows? Також які плюси і мінуси цих схем управління пакетами?


.deb і .rpm більше схожі на .msi, ніж на .exe.
Ігнасіо Васкес-Абрамс

зауважте: запитання "які плюси і мінуси rpm vs deb / dpkg" в інших місцях Інтернету приносить із собою можливість розпалити полум'яну війну.
strugee

Відповіді:


40

Файли, такі як .debі .rpm, більше схожі на .zipфайл. Вони є деревом каталогів файлів і підкаталогів, які містять файли, пов'язані з певною програмою та / або бібліотекою файлів.

Distros

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

Що в них особливого?

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

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

Що з файлами .msi?

.msiФайли схожі на .deb& .rpmфайли, але, ймовірно, ще складніші. Ці .msiфайли використовуються в Windows Installer , і пропонують додаткові функції , такі як:

  • GUI Framework
  • генерація послідовностей видалення
  • Рамка всередині себе - для використання сторонніми установниками
  • Відкат
  • Реклама
  • Інтерфейс користувача
  • тощо.

Я б запропонував ознайомитися з різними сторінками Вікіпедії з цих питань, якщо ви хочете більш поглиблене пояснення.

Список літератури


Оскільки відповідь починається з "таких файлів, як .deb та .rpm, більше схожі на файл .zip", можливо, варто згадати, що пакети deb - це фактично arархіви, а rpms (можливо, частково) архіви cpio. У випадку деб легко переконатися, що деб можна розпакувати ar -x. У випадку об / хв я не знаю, чи це можливо.
Faheem Mitha

@FaheemMitha:rpm2cpio package.rpm | cpio -idv
ninjalj

@ninjalj - дякую, що я забув додати цю команду. Я використовував його для розпакування rpms, коли хотів із них лише файл чи два. Зазвичай файли .spec.
slm

@ninjalj Спасибі, я цього не знав.
Faheem Mitha

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для установки пакетів. Ці інструменти не мають точних аналогів на windows.

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

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


7
+1 для розмови про управління залежністю. Це не слід не помічати.
ldrumm

1
Примітка: Я вважаю, .debщо упаковані за допомогою arутиліти. не знаю чому.
strugee

1
також, якщо ви збираєтесь вважати emergeменеджером пакетів, можливо, вам слід також розглянути порти BSD (хоча я про них не знаю багато, тому я не впевнений, чи є у них еквівалент менеджера пакунків у GNU / Linux).
strugee

3
@strugee правда, я редагував це, щоб відобразити це. Також технічно portage є двигуном управління пакетами позаду, emergeі він дуже схожий на порти. Це все на основі джерела і дуже настроюється, але якщо команда буде встановлювати / видаляти, обробляти залежності та зберігати базу даних встановлених пакетів, я називаю це менеджером пакетів. Хороші коментарі.
Кейсі

@casey: Де я можу отримати більше інформації про основні механізми dpkg та rpm?
смертельні отвори

4

Він має такі самі функції, як і файл MSI під Windows:

  • він реєструє програмне забезпечення в реєстрі,
  • він реєструє, які файли були встановлені з цим пакетом.

У Linux вони також управляють залежностями між іншими пакетами.

Цей формат управління пакетами робить багато інших речей, але це основні функції.


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, що містять програмне забезпечення (програма (и), додатки) тощо) та інформацію для програмного забезпечення "* інсталятор *" про саме програмне забезпечення та інструкції щодо встановлення того, що і де правильно.

  • .debПрограмний пакет Debian на дистрибутивах на основі Debian. Встановлюється, наприклад, apt/ aptitude(командний рядок) або графічно, наприклад, наприклад, " Synaptic ", " Центр програмного забезпечення Ubuntu ", " Gdebi ",…
  • .rpmМенеджер пакунків Red Hat : у дистрибутивах Fedora / Red Hat (на основі). Встановлюється через yum(командний рядок), або графічно через, наприклад, " yumex "
  • .msiє → Microsoft Installer : Зовнішньо так само, як вище, для ОС Microsoft Windows

Самі інсталятори також можуть обробляти обслуговування, оновлення та / або видалення пакетів. Також: тут " інсталятор " означає програмне забезпечення для виконання цих завдань правильно - воно також надає згадану інформацію для самого користувача, звичайно, для виконання таких завдань вручну.


1
PackageKit не є додатком. це бібліотека абстракцій для різних менеджерів пакетів у різних дистрибутивах.
strugee

@strugee dang, думав, що це ім’я. Я дуже сподіваюся, що yumexце правильне ім'я ... дякую за підказку
erch

Я вважаю, що за замовчуванням у Fedora є програмне забезпечення GNOME.
strugee

@strugee Я деякий час пробував Fedora, використовував LXDE і запам’ятовував графічний фронт-енд для управління пакунками, але назва була… Я здогадуюсь, все, що працює і підходить під
ваші

1

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

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

.msi: Бінарний інсталятор для платформи Windows


Ласкаво просимо до біржі стеків! пояснення того, чому вас зняли з посади: я не один із двох людей, котрі взяли участь у вступленні, але я гадаю, що вони зробили це, тому що ви маєте на увазі, що Debian та / або Ubuntu - це не GNU / Linuxes, і це помилковий. вони є. (і дистрибутивів набагато більше, ніж лише Debian, Ubuntu та Fedora.) Ви також нічого не пояснили.
strugee

1
Оновлення: відредаговано для усунення цього наслідку
Девідсон Чуа

Я здогадуюсь, що голосування є просто тим, що дають опис у одному рядку того, що означає файл, а не власне пояснення того, чим ці пакети відрізняються один від одного. Подивіться на обрану відповідь тут, таку якість, яку вони очікують від відповідей :)
Мунім
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.