web-dev-qa-db-ja.com

すべてのLinuxパッケージ/ソフトウェアが.deb形式で提供されないのはなぜですか?

.debパッケージは非常に簡単にインストールできます。Windowsの.exeと同様に、ダブルクリックしてUSC経由でインストールするだけです。一部の開発者が、インストールが複雑な.tar.gz(私のことを怖がらせる)のような形式を選択する理由を疑問に思います。

おそらくすべてのLinuxフォークが.debと互換性があるわけではありません。そうですか?

Linuxコミュニティがパッケージ管理の標準を設定していないため、どのソフトウェアも.deb形式(インストールが簡単なためこの形式が気に入っています)になり、最終的にはエンドユーザーにメリットがあります。

5
waqar

これは、Linuxエコシステムに多くの異なるサブブランチが含まれているためです(画像をクリックすると大きなバージョンが表示されます)。1

enter image description here

現在、これらのディストリビューションの基本的な違いの1つは、使用するパッケージマネージャーです。 Debianとその派生物(そのうちの1つはUbuntu)は、.debパッケージを扱うdpkgを使用します。もう1つの大きなプレーヤーは、.rpmパッケージで動作するRedHatパッケージマネージャー(rpm)です。他のディストリビューションには独自のシステムがあるか、ラッパーを使用してソースから直接インストールするか、パッケージマネージャーがまったくありません。

いずれにしても、.tar.gz形式は

  1. 実際にはフォーマットではありません。それが、圧縮されたtarballとして知られているものです。 tarはアーカイブ(.tar)を作成し、gzipを介してそれらを圧縮して圧縮します(.gz)。詳細については here を参照してください。

  2. インストーラーではありません。ソースtarballの場合、プログラムのソースコードであるファイル/ディレクトリの単なるコレクションです。

  3. ソースコードやプログラムに特定の方法ではありません。 .tar.gzはWindows(およびそれだけではない).Zipファイルに相当すると考えることができます。それらはcanインストーラーを含むか、Word文書などを含むことができます。

すべてのLinuxプログラムが.debファイルとしてパッケージ化されていない理由は、.debが実際に人気がある一方で、すべてのディストリビューションで機能しないためです。したがって、開発者はできるだけ多くのディストリビューション向けにアプリをパッケージ化するか、単にソースコードを利用可能にしてユーザーが自分でコンパイルできるようにすることができます。数年前まで、Linuxプログラムの大部分はこの方法でのみ配布されていました。あらかじめパッケージ化されたプログラムの種類は非常に少なかった。

これは近年、.deb形式の人気の大幅な増加に伴い変化しました。これは、主にUbuntuとLinux Mintの対応する人気によるものです。

誰もが.debを使用しない理由は、それぞれのアプローチ(dpkg/apt-getrpm/yumpacmanなど)に頑固なファンがあるためです。また、プログラムを.debとしてリリースするだけでは、誰もがそれを使用できるわけではありません。 anyGNU/Linuxユーザーが私のソフトウェアを使用できるようにする唯一の方法は、それをソースとしてリリースし、手動でコンパイルすることです。

最後の注意として、あなたは本当にそのようなプログラムを怖がってはいけません。依存関係を整理するのが面倒なことは事実ですが、ほとんどの開発者はWebページの依存関係を明確に述べ、インストールしている限り、ソース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 このウィキペディアのページ から撮影した画像。

19
terdon

実際には、.debパッケージに代わるものがあります

.debパッケージはdebian packagesの略です。 Debian Linux Distributionによって開始されました

別の主要なプレーヤーはrpmです。これはRedHat package managerを表します

Linuxはオープンソースに依存しています。したがって、.tar.gzのような圧縮ファイルのほとんどはソースコードです

次のようなLinuxディストリビューションでコンパイルして実行する必要があります。

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

注:すべてのソースパッケージが同じように動作するわけではないため、READMEファイルを注意深く読む必要があります。

これは、パッケージマネージャーを扱う場合には当てはまりません。それらはディストリビューションに依存しています。

役立つことを願っています

私はこれを見つけました quote パッケージマネージャー間の違いを定義するのに非常に役立ちました:

これらのグループは両方とも「パッケージマネージャー」であり、ソフトウェアのインストール、更新、保守、および削除のプロセスを大幅に簡素化します。 「deb」ファイルは、Debianディストリビューション(Ubuntuはそのバリアント)で作成された「dpkg」ユーティリティで使用され、「rpm」ファイルは、RedHat Package Managerで使用されます。 Red Hatディストリビューション。

パッケージマネージャーが使用される前は、新しいソフトウェアのインストールは複雑なプロセスであり、多くのオタクではありませんでした。そのソースコードを見つけて、そのソースをコンパイルし、実行可能なバイナリファイルにリンクする必要がありました。最初にそうしようとすると、通常、行方不明のライブラリファイルに関するエラーメッセージの長い文字列が発生しました。そのため、プロセスを検索、インストール、および繰り返す必要がありました。

パッケージマネージャユーティリティにより、これらのすべての「依存関係」を、説明とすぐに実行できるバイナリプログラムファイルを含む単一のファイル内にリストすることが可能になりました。パッケージマネージャーは、必要な依存関係をすべて取得し、新しいソフトウェアの初期構成も処理します。

2つの異なるタイプのマネージャーは基本的に同じジョブを実行しますが、それらのファイルは直接交換できません。 RPMファイルをDEB形式に変換するためのユーティリティは存在しますが、変換されたRPMファイルがDebianのファイルの場所の基準(いくつかの点で、Red Hatとその子孫)。

これが少し役立つことを願っています。すべてのディストリビューションがパッケージマネージャーを使用するわけではないため、「古い方法」について詳しく知りたい場合は、SlackwareやGenTooなどを試すことができます。それはあなたが快適な学習になるよりも多くを伝えるかもしれません

8
kirchberger

本当に、質問が間違っているであるためです。

「ケーキや小麦粉、卵、砂糖も買えるのはなぜですか。ケーキを食べるのが簡単なのに、なぜ他の物も売るのですか?」と尋ねるのが好きです。

.debは、誰かが特定のオペレーティングシステムにコンパイル、インストール、設定、および適応した(通常)コンパイルされたプログラムを含むパッケージです。誰かが依存関係、副作用などを処理しました。.deb形式はUbuntuやdebian、Mintなどの他のいくつかのディストリビューションで使用されていることに注意してください。多くの場合、動作しますが、保証されていません。他のディストリビューションには異なるパッケージングシステムがあります(rpm、pacman、slackwareの場合は.tar.gzも)。

.tar.gzは、圧縮されアーカイブされたファイルのセットです。 .Zipと考えてください。それは何でも構いません。ソフトウェア、写真のコレクション、ソースコード、コンパイルされたコード、さらにはディストリビューション用のパッケージまで、あなたはそれを名付けました。

7
Rmano

Debian FAQ で説明されているように:

通常、パッケージには、関連するコマンドまたは機能のセットを実装するために必要なすべてのファイルが含まれています。 Debianパッケージには2つのタイプがあります。

実行可能ファイル、構成ファイル、man/infoページ、著作権情報、およびその他のドキュメントを含むバイナリパッケージ。これらのパッケージはDebian固有のアーカイブ形式で配布され、通常は「.deb」ファイル拡張子を持つことで区別されます。バイナリパッケージは、Debianユーティリティdpkgを使用して、場合によってはaptitudeのようなフロントエンドを介して展開できます。

ソースパッケージ。ソースパッケージを記述する.dscファイル(次のファイルの名前を含む)、gzip圧縮tar形式の元の変更されていないソースを含む.orig.tar.gzファイル、および通常は.diffで構成されます。元のソースに対するDebian固有の変更を含むgzファイル。ユーティリティdpkg-sourceは、Debianソースアーカイブをパックおよびアンパックします。プログラムapt-getは、dpkg-sourceのフロントエンドを使用できます。

4
Tasos

これは、.tar.gzにソースコードが含まれているので、必要に応じて、いろいろと調べられるからです。さらに、これは開発者にREADMEを提供する機会も与えます。

怖がらせないでください-必要なのは、通常バンドルされている(またはREADMEにある)INSTALLファイルを読むだけです-

通常、それは単純です:

./configure
make
make install

そして出来上がり!

2
rm-vanda