web-dev-qa-db-ja.com

tarballをインストールする簡単な方法はありますか?

ほとんどのLinuxソフトウェアはtarballにパッケージ化されています。それらはすべて、コンパイルしてインストールするためのいくつかのコマンドを必要とします。

私の質問はスタンドアロンのdebianパッケージ用のgdebiがあるので、tarballを同じ方法でインストールするアプリを作ってみませんか?どうしてこんな単純なプロセスが自動化されないのですか?ソフトウェアをコンパイルするというアイデアで、新しいユーザーを脅迫し、追い払わなければならないのはなぜですか?

6
Dante Ashton

これらのプロセスは自動化されています。ほとんどは.debまたは.rpmパッケージで入手できます。 tarballと.debの唯一の違い(考えているレベル)は、コンパイルです。 Tarballには通常、プリコンパイルされたバイナリではなく、ソースコードとメイクファイルが含まれています(ただし、それらも含まれている場合があります)。 .debsは、複数のアーキテクチャにわたってプリコンパイルされています。

ここにあなたのためのアナロジーがあります:

.debは、車全体を運ぶトラックです。

ターボールは、自動車部品の箱と、自動車を得るために部品を組み立てる方法を説明するマニュアルを運ぶトラックです。

したがって、.deb(または「他の」ディストリビューションの.rpm)から何かをインストールすると、そのtarballで取得するものと同じものがインストールされます。

私は、進行/退行についてtxwikingerには同意しませんが。 tarballには何の問題もありません。頻繁に使用して、コードやスクリーンショット、ログファイル、またはさまざまな理由でユーザーに送信するものをまとめます。また、ソースtarballをダウンロードしてプログラムのソースコードを読み取り、問題が発生した場合に何が起こっているかを確認します。

12
DreadPirateJeff

Tarballのインストールを簡単にするのに時間を費やす代わりに、Debian/Ubuntu用のソフトウェアのパッケージ化に費やす方が全体的に有益です。これにより、UbuntuなどのDebianベースのディストリビューションの提供が強化されるだけでなく、依存関係も正しくインストールされます。

5
Adam Collard

Checkinstall はソースからdebを生成できます。 (RPMおよびslackewareパッケージも生成できます)

./configureを実行します

checkinstall -D 

debianパッケージを作成します。

このツールは主に、他の人のためのディストリビューションを作成するためではなく、自分のマシン上のソフトウェアをきれいにアップグレードおよび削除できるようにするためのものだと思います-しかし、複雑な依存関係がない場合は、あなたが望むことをする必要があります。

3
Robert Christie

通常、tarballは高度にカスタマイズ可能です。 90%で./configure && make installを実行するだけでも、他のいくつかはカスタムパラメーターを必要とするか、最悪の場合はアプリケーションを起動するために異なる手順を使用します。

通常のユーザーとしての私見では、tarballに対処する必要はありません。最初に誰かのリポジトリにあるかどうかを確認した方が良いかもしれません。

(エンドユーザーのインストール方法としての)tarballの問題は、次のとおりです。ソフトウェアを再度アンインストールします。

2番目の質問:はい、このプロセスはdebian-sourceパッケージまたはrpm-sourceパッケージで自動化されています。しかし、それらは問題ではなく、gdebiで開くことができると思います。あなたが知っているかどうかはわかりませんが、tarballは開発者がコードを世に出す最も簡単な方法です。プロジェクトにどんな混乱があっても、ソースを圧縮してアップロードするだけです。これがtarballの唯一の要件です。アプリのソースが含まれており、最終的にビルドスクリプトを提供する必要があります。

そのため、これらのtarballを直接使用することはできませんが、ここで非常に重要な問題に触れていると思います。Linuxパッケージングは​​混乱です。 1つのディストリビューションでも多くの作業が必要であり、小規模なプロジェクトでさまざまなディストリビューションのパッケージを維持することは事実上不可能です。

ディストリビューション間でパッケージを統一しようとするプロジェクトがたくさんありました(今でもあります)。少なくともWindowsのmsiパッケージやMacのdmgほど一般的なものはありません。

私はこの答えがイライラするに違いないことを知っていますが、もし私が最近革命を逃していなければ、それは今のところ行き詰まっています。

3
hansi

あなたがこれをたくさんやっているなら、あなたは小さな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のようなパッケージングシステムを使用する方がはるかに良いことに同意しますが。

2
x3ja

さまざまなアプリが、さまざまな標準を持つさまざまな開発者によって作成されています。 1つのアプリケーションですべてのtarballをインストールすることは非常に難しいタスクであることがわかります。代わりに、事前にコンパイルされたdebsがあります。 Tarballは依存関係の問題も提供します。これは、Debianと派生物がaptとaptitudeで修正したもので、tarballだけでは達成するのがほとんど不可能です。

1
Nigel

通常のユーザーとしては、おそらくtarballをインストールする必要はありません。 DebianおよびUbuntuチームは、アップストリームパッケージをリポジトリに配置する前にカスタマイズと検証に多くの時間を費やしています。パッケージを作成することは、依存関係とディストリビューション固有のインストールスクリプトの非常に厄介な混乱です。プロセスを自動化する簡単な方法はありません。

ただし、プログラマーであるか、上流プロジェクトに貢献しようとしている場合は、最終的に公式のtarballをインストールする必要があります。自動ではありませんが、プロセスを簡単にするツールがいくつかあります。

インストールしたプログラムのバグにパッチを当てたいだけの場合は、apt-get sourcepackagenameを使用してソースコードを取得し、ハックできます。そのパッチをアップストリームに送信したい場合でも、アップストリームのtarballから始めた方が良いでしょう。

そこにあるほとんどのプロジェクトは、コンパイル時の決定のかなりの量を自動化するオートツールを使用しています。通常、フォルダーに構成スクリプトがあるため、プロジェクトがautotoolsを使用するかどうかを確認できます。ある場合は、1行./configure && make && make installを使用してパッケージをビルドおよびインストールできます。ただし、以前にパッケージをビルドしていない限り、コンパイル時の依存関係が欠落しているため、おそらく失敗します。

インストールしようとしているパッケージがすでにUbuntuリポジトリにある場合、APTを取得して、apt-get build-depでtarballをコンパイルするために必要なすべてのライブラリを自動的にインストールします。 packagename。新しい依存関係がない場合、これは通常、プログラムをコンパイルする前に行う必要があるすべてです。自分のUbuntuリポジトリにない場合は、プロジェクトのドキュメントを確認してください必要なもの。

./configure && make && make installプロシージャの1つの問題は、通常make uninstallがないことです。 makeinstallを実行してパッケージをAPTに登録するので、後でアンインストールできるようにするためのcheckinstallというプログラムがあります。checkinstallは常に機能しません。あなたがインストールしているのはシステムであり、非常に危険です。

1
wm_eddie

.debパッケージは、適切なパッケージ管理を行うために必要な情報が追加されたtarballです。

Tarballをインストールするだけの場合、すべての依存関係が満たされていることをどのように確認しますか?必要なライブラリはすべてインストールされていますか?

Tarballのみによってインストールされたパッケージをどのように削除しますか?

Debianベースのパッケージ管理が提供するすべての保護手段を失い、特に新しいユーザーによるソフトウェアのインストールを非常に簡単にします。彼らがtarballをそのままインストールするのを簡単にすることは、進歩ではなく一歩後退になります。

これはともかく、どうすれば

./configure && make && Sudo make install

さらに簡素化されますか? (上記の問題に対処する必要があるユーザーを検討する場合)

0
txwikinger

上記の投稿のように、checkinstallはソースアプリケーションを効率的な方法でインストールおよびアンインストールするのに役立ちます。ネイティブパッケージ(redhatフレーバーの場合はrpm、ubuntuを含むdebianフレーバーの場合はdeb)を作成するため、ソフトウェアセンターなどのネイティブパッケージマネージャーを使用してこれらのパッケージを管理するのは非常に簡単です。詳細については、この記事を参照してください: findasolution.in checkinstall package managment made easy in linux 。元々はCentosのリターンですが、ubuntuでも動作します。

0
aneeshep