Як сказали декілька респондентів, певний формат пакету явно не найкращий. Технічно вони можуть бути більш-менш порівняними. З моєї точки зору, багато відмінностей, і чому люди віддають перевагу одне одному, пов'язане з:
- Філософія оригінального дизайну упаковки та цільової аудиторії
- Розмір спільноти та за розширенням якість та багатство сховищ
Філософія:
У світі Ubuntu / Debian / Mint / ... користувачі очікують, що встановлений пакет "просто запрацює" після його встановлення. Це означає, що під час встановлення, очікується, що пакети подбають про все необхідне, щоб вони фактично працювали, включаючи, але не обмежуючись ними:
- налаштування необхідних або необов'язкових робочих місць для встановлення
- налаштування альтернатив / псевдонімів
- налаштування сценаріїв запуску / відключення
- включаючи всі необхідні файли конфігурації із за замовчуванням, які мають сенс
- збереження старих версій бібліотек та додавання правильних символьних посилань на бібліотеки (.so) для зворотної сумісності
- чиста підтримка мультиаркових (32 та 64 бітних) двійкових файлів на одній машині тощо.
У світі rpm - правда, така ситуація була кілька років тому, і вона, можливо, покращилася з тих пір - я виявив, що мені потрібно здійснити додаткові кроки (наприклад, chkconfig, що дозволяють виконувати завдання cron), щоб фактично змусити пакети дійсно працювати. Це може бути нормально для сисадмінів або людей, які знають про Unix, але це змушує страждати від новачків. Зауважте, що не в тому, що формат пакету RPM сам заважає цьому не статися, це просто те, що багато пакунків фактично не "повністю зроблені" з точки зору новачка.
Розмір спільноти, участь та багатство сховищ:
Оскільки спільнота ubuntu / debian / mint / ... більше, все більше людей бере участь у упаковці та тестуванні програмного забезпечення. Я визнав багатство та якість сховищ найкращими. В ubuntu мені рідко, якщо взагалі, потрібно завантажувати джерело і створювати з нього. Коли я перейшов з Red Hat на Ubuntu вдома, типовий RHEL repo мав у ньому близько 3000 пакетів, в той же час ubuntu + всесвітня + мультиварка, доступна безпосередньо з будь-якого канонічного дзеркала, мала ~ 30 000 пакетів (приблизно в 10 разів). Більшість пакетів, які я шукав у форматі RPM, були недоступні за допомогою простого пошуку та натискання у менеджері пакетів. Вони потребували переходу на альтернативні сховища, пошук веб-сайту служби rpmfind тощо. Це, в більшості випадків, а не вирішує проблему, зламав мою установку, не вдавшись обмежити, які залежності можна або не можна правильно оновити. Я потрапив на явище "пекло залежності", як описано вище Шоном Дж. Гоффом.
На відміну від Ubuntu / Debian я виявив, що мені майже ніколи не потрібно будувати з джерела. Також через:
- Швидкий цикл випуску Ubuntu (6 місяців)
- Наявність повністю сумісних ППА, які працюють нестандартно
- Єдине джерело сховищ (усі розміщені Canonical) не потребує пошуку альтернативних / додаткових репост
- Безкоштовний користувацький досвід від натискання до запуску
Мені ніколи не доводилося йти на компроміси щодо старих версій пакетів, про які я піклувався, навіть коли вони не підтримувались офіційними (Canonical) розробниками. Мені ніколи не довелося залишати улюбленого дружнього менеджера пакунків GUI, щоб здійснити зручний пошук за ключовими словами, знайти та встановити будь-який пакет, який я хотів. Крім того, кілька разів я встановлював пакети debian (не Canonical) на Ubuntu, і вони працювали чудово, незважаючи на те, що сумісність офіційно не гарантована.
Зауважте, що це не призначене для початку полум'яної війни, це просто обмін моїм досвідом, використовуючи обидва світи паралельно протягом декількох років (робота проти дому).
debian
в каталозі, в який було вилучено вихідне джерело, існує каталог, і Debian дуже цінує концепцію незайманого вихідного коду tarball. Коли створений вихідний пакет, є три (два для рідних пакета) файли, які разом називаються вихідним пакетом: вихідний тарбол (бажано незайманий, політика Debian вимагає перепакування деяких проектів), тарбол debian dir для новий формат 3.0 (різний для старого формату 1.0) та .dsc.