Почему не все пакеты/программы Linux поставляются в формате .deb? [закрыто]

Пакет .deb очень прост в установке, как и .exe в Windows, просто дважды щелкните и установите через USC. Интересно, почему некоторые разработчики выбирают такие форматы, как .tar.gz (меня это пугает), которые сложны в установке.

Вероятно, не все форки Linux совместимы с .deb; так ли это?

Почему сообщество Linux не установит некий стандарт для управления пакетами, чтобы каждое программное обеспечение могло быть в формате .deb (я люблю этот формат из-за его простоты установки) и в конечном итоге конечные пользователи выиграют.

5
задан 26 March 2014 в 22:33

5 ответов

Это вызвано тем, что экосистема Linux содержит много много различных ответвлений sub (нажмите на изображение для увеличенной версии), 1:

enter image description here

Теперь, одним из основных различий между этими дистрибутивами является диспетчер пакетов, который они используют. Debian и его производные (одним из которых является Ubuntu), использование dpkg который имеет дело с .deb пакеты. Другой большой плеер является Диспетчером пакетов Redhat (rpm) который работает с .rpm пакеты. Другие дистрибутивы имеют свою собственную систему или используют обертку, чтобы установить непосредственно из источника или даже не иметь никакого диспетчера пакетов вообще.

В любом случае, .tar.gz формат

  1. Не на самом деле формат. Именно это известен как сжатый tarball. tar создает архивы (.tar) через которые затем проходят gzip сжимать их (.gz). Посмотрите здесь для получения дополнительной информации.

  2. Не установщик. Это - просто набор файлов/каталогов, в случае источника tarballs, исходного кода программы.

  3. Ни в коем случае характерный для исходных кодов или программ. Можно думать .tar.gz как эквивалент Windows (и не только) .zip файлы. Они могут содержать установщик, или они могут содержать документы слова или безотносительно.

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

Это изменилось в последние годы с огромным увеличением популярности .deb формат, который происходил в основном из-за соответствующей популярности Ubuntu и Linux Mint.

Причина, почему не все используют .deb тот каждый подход (dpkg/apt-get, rpm/yum, pacman и т.д.), имеет его несгибаемые вентиляторы. И если я только выпускаю свою программу как a .deb не все смогут использовать его. Единственный способ удостовериться, что любой GNU/пользователь Linux сможет использовать мое программное обеспечение, состоит в том, чтобы выпустить его как источник и позволить им скомпилировать его вручную.

Как заключительное примечание, Вы действительно не должны бояться таких программ. В то время как это верно, что разбирание в зависимостях может быть болью, большая часть devs ясно укажет зависимости от их веб-страницы и, пока Вам установили их, устанавливая программное обеспечение из источника tarball действительно довольно легок:

  1. Извлеките файл

    tar xvzf software.tar.gz
    
  2. Переместитесь в недавно созданный каталог, где файлы были извлечены

    cd software/
    
  3. Настроить

    ./configure
    
  4. Скомпилировать

    make
    
  5. Установка

    sudo make install
    

Это может все быть сжато к:

tar xvzf software.tgz; cd software; ./configure && make && make install

1 Изображение взято от этой страницы Wikipedia.

19
ответ дан 26 March 2014 в 22:33

На самом деле есть альтернативы .deb пакетов

.deb пакетов расшифровывается как debian packages. Он был запущен Debian Linux Distribution

Другим крупным игроком является rpm, что означает RedHat package manager

Linux опирается на открытый исходный код. Таким образом, большинство zip-файлов, таких как .tar.gz, представляют собой исходные коды

Вы должны скомпилировать и запустить любой дистрибутив Linux, например:

tar -xvf yourdownloadedpackagefilename.tar.gz
cd yourdownloadedpackagefilename
./configure
make
make install

Примечание: вам следует внимательно прочитайте файл README, потому что не все исходные пакеты ведут себя одинаково!

Это не тот случай, когда имеешь дело с менеджерами пакетов. Они зависят от дистрибутива.

Надеюсь, что это поможет

Я нашел эту цитату очень полезной для определения различий между менеджерами пакетов:

Обе эти группы являются «менеджерами пакетов», которые очень упростить процесс установки, обновления, иного обслуживания и удаления программного обеспечения. Файлы "deb" предназначены для использования утилитой "dpkg", созданной в дистрибутиве Debian (вариант Ubuntu), а файлы "rpm" предназначены для менеджера пакетов RedHat, похожей, но совершенно другой утилиты, созданной с помощью дистрибутив Red Hat.

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

Утилиты диспетчера пакетов позволили перечислить все эти «зависимости» в одном файле, который также содержал описание и готовый к запуску двоичный программный файл. Менеджер пакетов заботится о получении всех необходимых зависимостей, а также обрабатывает начальную настройку нового программного обеспечения.

Хотя два разных типа менеджера выполняют практически одинаковую работу, их файлы не являются взаимозаменяемыми. Утилита существует для преобразования файлов RPM в формат DEB, но нет гарантии, что преобразованный файл RPM автоматически настроит вещи для стандартов размещения файлов Debian (которые в некоторых отношениях значительно отличаются от стандартов Red Hat и его потомки).

1122 Надеюсь, это немного поможет. не во всех дистрибутивах используются менеджеры пакетов, поэтому, если вы хотите узнать больше о «старых способах», вы можете попробовать такие вещи, как Slackware или GenToo! Это может сказать вам больше, чем вам будет удобно учиться

0
ответ дан 26 March 2014 в 22:33

Действительно, потому что вопрос неправильный .

Похож для выяснения, "почему я могу купить пироги и муку, яйца, сахар также? Настолько легче просто съесть пирог, почему кто-то продает всему этому другие вещи также?"

.deb пакеты с (обычно) скомпилированными программами, которые кто-то скомпилировал, установил, настроил и адаптировал к определенной операционной системе. Кто-то заботился о зависимостях, побочных эффектах, и т.д. Обратите внимание, что .deb формат используется Ubuntu и несколькими другими дистрибутивами, как debian, Монетный двор, и т.д.... и даже если можно установить debian .deb в Ubuntu, и часто это будет работать, не гарантируется так. Другие дистрибутивы имеют различные упаковочные системы (об/мин, pacman, даже .tar.gz для slackware).

.tar.gz сжатый, заархивированный набор файлов. Думайте .zip. Это могло быть что. Программное обеспечение, фото набор, исходный код, скомпилированный код, даже пакет для дистрибутива, Вы называете его.

0
ответ дан 26 March 2014 в 22:33

Как объяснено в Debian FAQ:

Пакеты обычно содержат все файлы, необходимые для реализации ряда связанных команд или функций. Существует два типа пакетов Debian:

Двоичные пакеты, которые содержат исполняемые файлы, конфигурационные файлы, страницы человека/информации, информацию об авторском праве и другую документацию. Эти пакеты распределяются в Debian-определенном формате архива, их обычно отличают при наличии '.deb' расширение файла. Двоичные пакеты могут быть распакованы с помощью утилиты Debian dpkg и возможно через frontend как способность.

Исходные пакеты, которые состоят из .dsc файла, описывающего исходный пакет (включая названия следующих файлов), .orig.tar.gz файл, который содержит исходный неизмененный источник в gzip-сжатом формате tar и обычно .diff.gz файле, который содержит Debian-определенные изменения в первоисточнике. Служебный dpkg-источник упаковывает и распаковывает исходные архивы Debian. Склонная программа - добирается, может привыкнуть frontend для dpkg-источника.

0
ответ дан 26 March 2014 в 22:33

Это вызвано тем, что эти .tar.gz включает исходный код, так, чтобы можно было ввести по абсолютному адресу вокруг, если Вы хотели бы. Плюс, это также дает разработчикам шанс дать, Вы README

не позволяете им испугать Вас - все, что необходимо сделать, читается INSTALL файл, который обычно прибывает связанный (или находится иначе в README) -

обычно, это просто:

./configure
make
make install

и вуаля!

0
ответ дан 26 March 2014 в 22:33

Другие вопросы по тегам:

Похожие вопросы: