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

Если Вы используете конкретный клиент SVN TortoiseSVN, то на фиксации, у Вас есть опция щелчка правой кнопкой по объектам и выбора, "Добавьте к черному списку".

5
задан 17.05.2020, 21:03

5 ответов

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

enter image description here

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

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

  1. Не на самом деле формат. Именно это известен как сжатый tarball. tar создает архивы (.tar), которые тогда передаются до [1 113] для сжатия их (.gz). См. здесь для получения дополнительной информации.

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

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

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

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

причина, почему не все используют .deb, состоит в том, что каждый подход (dpkg/apt-get, rpm/yum, pacman и т.д.) имеет свои несгибаемые вентиляторы. И если я только выпущу свою программу как .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 Изображение, взятое от [1 127] эта страница .

Wikipedia
0
ответ дан 17.05.2020, 21:03
  • 1
    Можно часто делать make test перед make install, чтобы быть уверенными, что все пошло хорошо на шаге компиляции. – Abubakr Ch 17.05.2020, 21:04
  • 2
    @orangedoc благодарит найти опечатки, но Ваш " simplification" из эти tar было неправильным. Эти - не нужно, эти v является действительно дополнительным, но полезным, таким образом, Вы знаете what' s продолжение и эти z важно для tgz файлы. – Gordon Linoff 17.05.2020, 21:04
  • 3
    @Rmano, как? Кажется сомнительным, но теоретически возможный я предполагаю. Ядро только вышло на 17 сентября 1991 , Вы, возможно, использовали slackware с ядром Unix? – Abubakr Ch 17.05.2020, 21:04
  • 4
    @strugee прекращают дергать мою цепочку. Вы знаете, а также я делаю это 1) tar.xz не tar.gz 2), Это не установщик так или иначе, это - архив, и pacman устанавливает его 3), Tarballs может содержать то, что они любят. – Abubakr Ch 17.05.2020, 21:05
  • 5
    @terdon, По моему опыту make test делает , узнают что что-то isn' t работа, но это зависит от качества набора тестов. Так или иначе, make test может также помочь, когда использование данной библиотеки предлагается, но не требуется. make test обычно шоу, что тесты были пропущены и почему они были пропущены так, у Вас есть шанс установить данную библиотеку прежде, чем установить программу (и таким образом использовать в своих интересах дополнительные функции). – Gordon Linoff 17.05.2020, 21:05

На самом деле есть альтернативы .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
ответ дан 17.05.2020, 21:04
  • 1
    Ваша команда tar пропускает переключатель z, требуемый к потоку через gzip для распаковки. – Mohsin Mehmood 17.05.2020, 21:04

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

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

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

./configure
make
make install

и вуаля!

0
ответ дан 17.05.2020, 21:04
  • 1
    Это не верно также. tar.gz является архивом, как .zip файл, и может содержать что-либо от исходного кода до скомпилированных двоичных файлов. – Toto 17.05.2020, 21:04
  • 2
    Знак доллара isn' t часть команды... – Toto 17.05.2020, 21:05

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

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

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

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

0
ответ дан 17.05.2020, 21:05
  • 1
    В моих примечаниях. Вы хотите имя файла? – Samuel Philipp 17.05.2020, 21:05
  • 2
    А-ч, нет... Но так как Вы использовали кавычки в своем ответе, хорошо для добавления также ссылки на источник/ссылку. – dridk 17.05.2020, 21:05
  • 3
    Никакие probs аплодисменты Radu – user10943878 17.05.2020, 21:06
  • 4
    Как @RaduRДѓdeanu сказал, всегда включайте свои источники. Я отредактировал сообщение для добавления их. – Ofek Ron 17.05.2020, 21:06
  • 5
    И где заключенный в кавычки источник? – Kodos Johnson 17.05.2020, 21:07

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

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

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

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

0
ответ дан 17.05.2020, 21:05
  • 1
    Поскольку я don' t хотят пирог, я хочу круг! – Mohsin Mehmood 17.05.2020, 21:06

Теги

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