В чем разница между пакетами deb и tar-шарами? Каковы преимущества / недостатки каждого?

9

Я не знаю насчет шариков смолы. Большинство пакетов доступны в формах tar ball, но пакеты Ubuntu являются пакетами Debian.

В чем разница между пакетами deb и tar-шарами?

Каковы преимущества / недостатки каждого?

Siraj
источник

Ответы:

7

Тар шарики, как правило, исходный код, который вы должны скомпилировать. Дебы - это предварительно скомпилированные программы, уже собранные и настроенные для Ubuntu / Debian.

Я настоятельно рекомендую использовать дабы, когда они доступны, так как они проще и интегрируются с менеджером пакетов, так что вы можете легко удалить их.

Debs также установит все необходимые зависимости. Установка из исходного кода может привести к тому, что ласково называют «адом зависимостей». Большинство программ с открытым исходным кодом зависят от нескольких других программ / библиотек. При установке из исходного кода он не будет устанавливать их, а вместо этого будет (надеюсь) жаловаться на то, что зависимость не встречается. Затем вы пытаетесь установить эту зависимость, а затем она взрывается, требуя другую зависимость и т. Д. И т. Д.

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

Когда мне нужно установить программу, я пробую свои параметры в следующем порядке:

  1. Посмотрите в Центре программного обеспечения. Это, очевидно, самое простое, хотя Центр программного обеспечения не является всеобъемлющим и не соответствует последним версиям.

  2. Попробуйте найти репозиторий, который его предоставляет. Добавление репозитория приведет к тому, что программа появится в Центре программного обеспечения, получит своевременные обновления и т. Д.

  3. Ищите пакет .deb.

  4. Установить из источника (tar ball).

reverendj1
источник
6

тарные шарики - это просто еще одна форма сжатия, например, zip. Хотя форматы и методы сжатия различаются, в основном это контейнер для группы файлов и папок.

Обычно исходный код и необходимые ему файлы будут доступны в интернете человеком / группой, написавшим программное обеспечение в виде tar-шара. Таким образом, вы можете скачать его, распаковать, скомпилировать и установить программное обеспечение.

Однако то, что делают пакеты deb, - это упрощает процесс установки, поддерживая стандарт. Программное обеспечение, доступное в Интернете, будет взято сопровождающими пакетов Debian, преобразовано в соответствующие пакеты .deb и помещено в репозиторий Debian.

введите описание изображения здесь

Вы можете прочитать об этом в блоге сопровождающего пакета Debian здесь: http://www.j4v4m4n.in/2012/05/01/debian-utsavam-at-mes-kuttippuram-kerala-2/

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

Но если вы используете tar ball, установите его, вам придется выяснить, от чего зависит это программное обеспечение, и каждый раз вам придется вручную проверять, были ли ранее установлены зависимости программного обеспечения, которое вы устанавливаете.

Но apt сделает все это за вас.

Кроме того, установка из исходного кода (установка из tar-шариков) будет иметь разные методы для разных программ. Существует философия GNU, касающаяся установки configure-make-make, и существуют другие методы, в зависимости от того, как написано программное обеспечение.

Однако преобразование их в deb полностью устраняет все эти различия и облегчает пользователю установку и использование программного обеспечения.

Еще один момент. Когда вам нужно установить из источника? То есть из смоляного шарика? Есть в основном две ситуации.

  1. Если команда упаковки Debian еще не упаковала программное обеспечение.
  2. Если вы хотите внести свой вклад в проект. Это означает, что вы можете вносить изменения в исходный код, компилировать его и тестировать изменения.

Если вы хотите узнать больше об упаковке Debian, вы можете прочитать ее здесь: http://www.debian.org/doc/manuals/maint-guide/

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

harisibrahimkv
источник
1

Пакеты Debian (и, следовательно, Ubuntu) представляют собой набор двоичных файлов и соответствующие инструкции по их установке. Это означает, что сам пакет знает, как и где устанавливать, а также знает список пакетов, от которых он зависит.

Исходные архивы (файлы с расширением .tar.gzили .tar.bz2- или даже .tgz или .tbz2 ) - это просто наборы файлов и каталогов, которые были упакованы вместе с tarутилитой и также сжаты либо либо, gzipлибо bzip2. Для создания исходного кода вам необходимо:

  1. распаковать файлы с помощью tar xvfz file.tar.gzили tar xvfj file.tar.bz2(в пустой директории)
  2. настроить пакет с помощью ./configure(пакет тестирует систему, чтобы увидеть, все ли в порядке перед началом компиляции)
  3. начать компиляцию с make
  4. если хотите, запустите make installдля установки приложения в его расположение по умолчанию (обычно в / usr / {s} bin или / usr / local / {s} bin, но это зависит от приложения и дистрибутива)

Основные преимущества пакетов Debian / Ubuntu по отношению к архивам исходного кода заключаются в том, что пакеты являются «автономными», а их двоичные файлы отслеживаются. Это означает, что процесс распаковки прозрачен для пользователя, который просто видит (примерно) один пакет на приложение. Пользователю даже не нужно помнить, какие файлы установлены и где установлено данное приложение, поэтому установка / удаление приложений становится (в основном) процессом одной инструкции.

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

Avio
источник
1
Маленькая точка. Шаги «настроить, сделать, сделать установку» предназначены для тех программ, которые используют философию сборки GNU automake. Есть программное обеспечение, которое может быть создано из исходного кода (из tar-шариков) различными способами. Так что это может быть неправильно, говоря: «Чтобы собрать исходный код, выполните настройку, выполните сборку, выполните установку». Наилучший способ выразить это может быть: «Для установки из источника прочитайте файл README или INSTALL в исходном коде и следуйте инструкциям,
harisibrahimkv
Да, я только что говорил об этом методе, потому что он принят подавляющим большинством исходных архивов.
Авио
Там нет споров. :)
harisibrahimkv
1

Я вижу некоторые довольно хорошие ответы уже опубликованы. Но есть несколько вещей, которые необходимо решить.

Вопреки тому, что известно как «ад зависимостей», когда дело доходит до компиляции из исходного кода, вы можете на самом деле настроить Ubuntu таким образом, чтобы он автоматически устанавливал эти зависимости при компиляции из tarball / любого источника.

Прочтите, как это сделать, здесь:

http://www.howtogeek.com/106526/how-to-resolve-dependencies-while-compiling-software-on-ubuntu/

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

Также слово «пакеты Debian» может сбить вас с толку в этом контексте. Помните, что пакеты Debian бывают двух типов, как здесь сказано:

http://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics.en.html

Конечно, если вы говорите только о файлах deb, то они, как правило, представляют собой скомпилированное программное обеспечение, как уже говорилось выше.

Бхарадвад Сригирираджу
источник