Есть ли простой способ установить тарболы?

Большая часть программного обеспечения Linux упакована в тарболлы. Всем им требуется всего несколько команд для их компиляции и установки.

Мой вопрос; у нас есть gdebi для автономных пакетов Debian, так почему бы не установить приложение для одинаковой установки tar-архивов? Почему такой простой процесс не автоматизирован? Почему мы должны продолжать запугивать и отгонять новых пользователей идеями компиляции программного обеспечения?

6
задан 16 August 2010 в 10:24

9 ответов

Эти процессы автоматизированы. Вы получаете их в основном в пакетах .deb или .rpm. Единственное различие (на уровне, о котором вы думаете) между tar-архивом и .deb - это компиляция. Tarball, как правило, содержат исходный код и создают файлы, а не предварительно скомпилированные двоичные файлы (хотя они тоже иногда содержат их). .debs предварительно скомпилированы для нескольких архитектур.

Вот вам аналогия:

.deb - это грузовик с целой машиной.

Тарбол - это грузовик с коробкой автомобильных деталей и руководством, в котором рассказывается, как собрать детали для получения автомобиля.

Итак, когда вы устанавливаете что-то из .deb (или .rpm на эти «другие» дистрибутивы), вы устанавливаете те же самые вещи, которые вы получите в этом tarball, просто с работой, уже сделанной для вас.

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

0
ответ дан 16 August 2010 в 10:24

Разные приложения написаны разными разработчиками с разными стандартами. Было бы очень сложно создать одно приложение для установки всех tar-архивов. Вместо этого у нас есть дэбы, которые предварительно соблюдаются. Тарболы также создают проблему зависимости, которую debian и производные исправили с помощью apt и aptitude, которую было бы практически невозможно достичь только с помощью tarball.

0
ответ дан 16 August 2010 в 10:24

тарболлы обычно очень настраиваемы. хотя с 90% из них вы просто идете ./configure & amp; & amp; make install, некоторые другие требуют пользовательских параметров или, в худшем случае, используют другие шаги для сборки приложения.

imho, как обычный пользователь, вам не придется иметь дело с тарболлами. вам лучше проверить, находится ли он в чьем-то хранилище первым.

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

на ваш второй вопрос: да, этот процесс автоматизирован с помощью пакетов debian-source или rpm-source. но это не проблематично, и я думаю, что их можно просто открыть в gdebi. я не уверен, что вы знаете, но тарбол - это самый простой способ, которым разработчик может вывести свой код в мир. независимо от того, какой беспорядок они имеют в своем проекте, просто заархивируйте исходный код и загрузите его - это единственное требование, которое я знаю для тарбола: оно должно содержать источник какого-либо приложения и в конечном итоге предоставлять скрипт сборки.

, так что, несмотря на то, что не удастся использовать эти tar-архивы напрямую, я думаю, что вы затрагиваете очень важную проблему: упаковка в Linux - беспорядок. Это большая работа даже для одного дистрибутива, и для небольшого проекта практически невозможно поддерживать пакеты для различных дистрибутивов.

была (и есть) группа проектов, которые пытались объединить упаковку в дистрибутивах, но на самом деле это никогда никуда не делось. по крайней мере, ничего такого распространенного, как пакет MSI для Windows или DMG на Mac.

Я знаю, что этот ответ, должно быть, разочаровывает, но если я не пропустил революцию в последнее время, то это то, с чем мы застряли на данный момент.

0
ответ дан 16 August 2010 в 10:24

Checkinstall может генерировать debs из источника. (Это может также генерировать и slackeware пакеты об/мин),

Вы работаете./настраивать затем

checkinstall -D 

создать debian пакет.

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

3
ответ дан 16 August 2010 в 10:24

.deb-пакеты - это тарболы с необходимой информацией для правильного управления пакетами.

Если вы просто установите tarball, как вы убедитесь, что все зависимости соблюдены? Все необходимые библиотеки установлены?

Как вы хотите удалить пакет, который установлен только tar-архивом?

Вы теряете все гарантии, которые предоставляет управление пакетами на основе Debian, и это, в частности, упрощает установку программного обеспечения новыми пользователями. Чтобы им было проще устанавливать тарболы, они будут шагом назад, а не прогрессом.

Кроме этого, как

./configure && make && sudo make install

можно еще больше упростить? (Если вы считаете, что пользователь должен иметь возможность решать вышеупомянутые вопросы)

0
ответ дан 16 August 2010 в 10:24

Как и в приведенных выше постах checkinstall, вы сможете эффективно установить и удалить исходное приложение. Поскольку он создает собственные пакеты (rpm для разновидностей redhat и deb для разновидностей debian, включая ubuntu), управлять этими пакетами очень просто с помощью встроенного менеджера пакетов, такого как центр программного обеспечения. Обратитесь к этой статье за ​​дополнительной информацией: findasolution.in checkinstall: управление пакетами стало проще в linux . Первоначально он возвращается для Centos, но также будет работать в Ubuntu.

0
ответ дан 16 August 2010 в 10:24

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

Однако, если вы программист или вы пытаетесь внести свой вклад в основной проект, вам в конечном итоге потребуется установить официальные tar-архивы. Хотя это и не автоматическое решение, есть несколько инструментов, которые облегчают процесс.

Если вы просто хотите исправить ошибку в программе, которую вы установили, вы можете получить исходный код с apt-get source имя_пакета и взломать его. Если вы хотите отправить этот патч в апстрим, хотя лучше начать с вышестоящего архива.

В большинстве проектов используются автоинструменты, которые автоматизируют значительное количество решений во время компиляции. Обычно вы можете сказать, использует ли проект автоинструменты, потому что в папке есть скрипт configure. Если есть, вы можете собрать и установить пакет, используя одну строку ./configure && make && make install. Если вы не создали пакет раньше, он, вероятно, потерпит неудачу, потому что у вас отсутствуют некоторые зависимости времени компиляции.

Если пакет, который вы пытаетесь установить, уже находится в репозиториях Ubuntu, вы можете получить APT для автоматической установки всех библиотек, необходимых для компиляции архива с apt-get build-dep имя_пакета . Если новых зависимостей нет, обычно это все, что вам нужно сделать, прежде чем вы сможете скомпилировать программу. Если его нет в репозиториях Ubuntu, вы сами можете проверить документацию проекта и выяснить, что ему нужно.

Одна проблема с процедурой ./configure && make && make install состоит в том, что обычно не существует make uninstall. Есть программа checkinstall, которая запустит make install для вас и зарегистрирует пакет в APT, чтобы вы могли удалить его позже. Однако checkinstall не всегда работает, и в зависимости от того, насколько важен пакет, который вы устанавливаете, для системы, он может быть очень опасным.

0
ответ дан 16 August 2010 в 10:24

Вы могли бы написать небольшой скрипт bash, если вы делаете это много ...

#!/bin/bash
FILE=$1
DIR="${FILE%.tar.gz}"
tar -xzf $1
cd $DIR
./configure
make
sudo make install

Назовите его tarinstall (или что-то в этом роде), поместите его на свой путь, а затем просто сделайте:

tarinstall thisnewpackage.tar.gz

Хотя я согласен, что гораздо лучше использовать систему упаковки, такую ​​как .debs или .rpms.

0
ответ дан 16 August 2010 в 10:24

Вместо того, чтобы тратить время на упрощение установки tar-архивов, в целом было бы выгоднее потратить на упаковку программного обеспечения для Debian / Ubuntu. Это не только улучшит предложения дистрибутивов на основе Debian, таких как Ubuntu, но и правильно установит зависимости

0
ответ дан 16 August 2010 в 10:24

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

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