Как сказали несколько респондентов, определенный формат пакета явно не так хорош. Технически они могут быть более или менее сопоставимы. С моей точки зрения, многие различия и то, почему люди предпочитают одно другому, связаны с:
- Философия оригинального дизайна упаковки и целевая аудитория
- Размер сообщества и, соответственно, качество и богатство хранилищ
Философия:
В мире Ubuntu / Debian / Mint / ... пользователи ожидают, что установленный пакет будет «просто работать» после его установки. Это означает, что во время установки ожидается, что пакеты позаботятся обо всем, что необходимо для правильной работы, в том числе:
- настройка необходимых или дополнительных заданий cron
- настройка альтернатив / псевдонимов
- настройка сценариев запуска / выключения
- включая все необходимые файлы конфигурации со значениями по умолчанию, которые имеют смысл
- сохранение старых версий библиотек и добавление верных символических ссылок в библиотеки (.so) для обратной совместимости
- чистая поддержка многоархивовых (32 и 64-битных) двоичных файлов на одном компьютере и т. д.
В мире rpm - по общему признанию, это была ситуация несколько лет назад, и с тех пор она могла улучшиться - я обнаружил, что должен выполнить дополнительные шаги (например, chkconfig, включение заданий cron), чтобы фактически заставить пакеты действительно работать. Это может быть хорошо для системных администраторов или людей, которые хорошо знакомы с Unix, но это заставляет страдать новичков. Обратите внимание: дело не в том, что сам формат пакета RPM предотвращает это, а в том, что многие пакеты де-факто не «полностью выполнены» с точки зрения новичка.
Размер сообщества, участие и богатство хранилищ:
Так как сообщество ubuntu / debian / mint / ... стало больше, все больше людей занимаются упаковкой и тестированием программного обеспечения. Я обнаружил, что богатство и качество хранилищ превосходно. В Ubuntu мне редко, если вообще нужно, нужно скачивать исходники и строить из них. Когда я переключился с Red Hat на Ubuntu дома, в типичном репозитории RHEL было ~ 3000 пакетов, в то же время ubuntu + universe + multiverse, доступный напрямую из любого зеркала Canonical, имел ~ 30 000 пакетов (примерно в 10 раз). Большинство пакетов, которые я искал в формате RPM, не были легко доступны с помощью простого поиска и щелчка в диспетчере пакетов. Они требовали перехода на альтернативные репозитории, поиска на веб-сайте службы rpmfind и т. Д. Это, в большинстве случаев, а не решение проблемы, сломал мою установку, не сумев ограничить то, что зависимости могут или не могут быть обновлены правильно. Я столкнулся с феноменом «ада зависимости», как описано выше Шоном Дж. Гоффом.
В отличие от Ubuntu / Debian, я обнаружил, что мне почти никогда не нужно строить из исходного кода. Также из-за:
- Ubuntu быстрый (6 месяцев) цикл выпуска
- Существование полностью совместимых PPA, которые работают из коробки
- Репозитории с одним источником (все они размещены в Canonical) не нужно искать альтернативные / дополнительные репозитории
- Удобный пользовательский опыт от клика до запуска
Мне никогда не приходилось идти на компромисс с более старыми версиями пакетов, которые меня волновали, даже если они не поддерживались официальными (Canonical) разработчиками. Мне никогда не приходилось оставлять свой любимый дружественный графический менеджер пакетов для удобного поиска по ключевым словам, чтобы найти и установить любой нужный мне пакет. Кроме того, несколько раз я устанавливал пакеты Debian (не Canonical) в Ubuntu, и они работали просто отлично, несмотря на то, что эта совместимость официально не гарантирована.
Обратите внимание, что это не предназначено для того, чтобы начать пламенную войну, я просто делюсь своим опытом использования обоих миров параллельно в течение нескольких лет (работа против дома).
debian
каталог существует в каталоге, в который был извлечен исходный код, и Debian очень ценит концепцию нетронутого исходного кода tarball. Когда создается пакет с исходным кодом, есть три (два для нативных пакета) файла, которые вместе называются пакетом с исходным кодом: архив с исходным кодом (желательно нетронутый, политика Debian требует переупаковки некоторых проектов), архив с каталогом debian для каталога новый формат 3.0, (diff для старого формата 1.0) и .dsc.