Linuxソースコードのパッケージ化の標準はいつ.tar.gzになりましたか?


29

主にLinuxシステム用に開発されたオープンソースプロジェクトを閲覧し、最新のパッケージをダウンロードする場合、ソースコードは常に.tar.gzまたは.tar.bz2ファイルに保存されます。

.zipや.rarなどの圧縮アルゴリズムではなく.tar.gzや.tar.bz2を使用する(またはプロジェクトが十分に小さい場合は非圧縮のままにする)理由はありますか?


3
どこでブラウジングしていますか?最近のほとんどのプロジェクトは、VCSリポジトリURLの形式でソースコードを配布しており、アーカイブを提供する場合、通常は.ZIP形式です。... TGZは(メッセージを取得するには、いくつかの不快な人々の頑固な拒否にもかかわらず)何十年も時代遅れとなっていると私は長い時間でそれを使用して、任意のプロジェクトを見ていない
メイソンウィーラー

4
Linux、zip、およびrarは、tar(つまりTape Archiver)がすでに標準のデファクトであった場合でも存在しませんでした。
SKロジック

19
@Mason Wheeler:「廃止」を定義します。人々が便利であると感じ、それを使い続ける限り、フォーマットは時代遅れではありません。tar + gzが仕事をしていて、多くの場合、別の形式への切り替えは好みの問題だと思います。Eclipse(eclipse.org)のようなプロジェクトはまだそれを使用しています。
ジョルジオ

3
@MasonWheeler、ftp.gnu.orgたとえば、周りをブラウズします。これは、インターネット全体が構築されているものです。とにかく、ZIPが技術的に劣っていると誰もが同意することを願っています。
SKロジック

5
@MasonWheelerその他 tarの名前にテープアーカイバが含まれているからといって、tarが時代遅れになるわけではありません。私が知っている誰もが* nix / BSDの世界でtarを使用しており、.zipを使用することは比較的まれです。実際、zipファイルを見ると、ほとんどの場合、それがWindows専用のアーカイブであるかどうかを疑います。
ロブ

回答:


31

見出しの質問に答えるために:tar.gz / tar.bz2は、非常に長い時間前にLinuxソースコードを配布するための標準になりました。Linuxが登場するかなり前のことです。

実際、tarは(t)ape(ar)chiveの略です。リールを一生懸命考えてみてください。そうすれば、それが何歳なのかがわかります。バダムバンプ。

人々がCDバーナーを使用する前に、ソフトウェアのディストリビューションは1.44Mbフロッピーディスクに置かれていました。圧縮されたtarファイルは、splitコマンドによってフロッピーサイズの断片に切り刻まれ、これらの断片はtarballと呼ばれていました。それらを一緒に結合しcat、アーカイブを抽出します。

なぜZipやRarなのかという他の質問に答えるのは簡単です。tarアーカイバはUnixに由来し、他の2つはMS-DOS / Windowsに由来します。TarはUNIXファイルのメタデータ(許可、時間など)を処理しますが、zipとrarはごく最近まで(MS-DOSファイルデータを保存していました)処理しませんでした。実際、zipがNTFSメタデータ(代替ストリーム、セキュリティ記述子など)を適切に格納し始めるまでにしばらく時間がかかりました。

PKZipの圧縮アルゴリズムの多くは元のメーカーが所有しており、Dos / Windowsバージョンに追加された最後のアルゴリズムはDeflate(RFC 1951)でした。 。GzipはDeflateアルゴリズムを使用します。

RAR圧縮アルゴリズムはプロプライエタリですが、デコンプレッサーの無償のオープンソース実装があります。RARlabからのRARおよびWinRARの公式リリースは無償ではありません。

Gzipはdeflateアルゴリズムを使用しているため、PKZipより悪くありません。Bzip2の圧縮率はわずかに向上しています。

TL; DRバージョン:

tar.gzとtar.bz2はUnixのものであるため、Unixの人々はそれらを使用します。ZipとRarはDOS / Windowsの世界のものであるため、DOS / Windowsの人々はそれらを使用します。tar数十年にわたって* nixにあるもののアーカイブをバンドルするための標準でした。


1
いくつかの明確化:オープンソースのRAR実装はRARLAB独自のオープンソースに基づいているデコンプレッサ。また、他のほとんどのコンプレッサーよりも大幅に新しく、以前に人気があったACE、ARJ、およびARCのかなり後にWindowsで最初に登場しました。比較的最近までUnixで実際に登場したものはありません。
greyfade

小さな修正:RARアルゴリズムがありませんオープン:fedoraproject.org/wiki/Licensing:Unrar?rd=Licensing/Unrar
スヴェンSlootweg

16

いつ使用されるのかはわかりませんが、使用される理由は次の組み合わせであると思います。tarは伝統的(非常に古い)。コマンドラインからの簡単な管理。tarは、ZIPまたはRARが保持できないファイルシステム情報を保持します。2パスプロセスは、圧縮がより効率的であることを意味します(1つの大きなファイルの圧縮は、多くの小さなファイルよりも優れています)。

bzip2(.bz2)は、gzip自体が以前の圧縮(.Z)を置き換えたのとほぼ同じ方法で、より良い圧縮を提供するため、gzip(.gz)を置き換えているようです。


3
また、xz(LZMA)は、圧縮率が重要な場所でbzip2を置き換えているようです.xzファイルは gzip より30%小さい)。Gzipはおそらく最も高速です。
サスタニン

8

基本的に、アーカイブと圧縮は2つの異なる操作です。tar.gzは意図を非常に明確に示しています。圧縮されたアーカイブに対して、.zipまたは.rarは単に圧縮されたものを示しています。


5

tarUNIXでは伝統的で、ファイルを結合しますが、必ずしもそれらを圧縮しません。.gまたは.bzまたは.b2で圧縮するのも同じくらい簡単です。

Zipそして、rarWindowsの世界で妥当かつより一般的です


ああ、私の質問は具体的ではありませんでした。私は主にLinux / Unixコードについて話していました。
ジョーZ.

4
+1-ただし、zipはしばらく前にプロプライエタリでなくなりました。
ビリーONeal

はい、ジッパーのサブセットは今標準です:iso.org/iso/home/store/catalogue_tc/...
rogerdpack

4

それは伝統的で、どこにでもあり、機能します。加えて、私はそれがいくぶん自明であると思った。

更新

申し訳ありませんが、異質な環境で管理者として私が知っていることや経験があることをほとんどの人が知らないことを忘れています。

時間の経過とともに染み込んでいる習慣や慣習のような伝統tarは古いテープバックアップテクノロジーを参照するTape ARchiveから派生しているため、これには歴史上の根拠があることがわかっています。1979年に第7版Unixでtpに取って代わったさまざまなUnixオペレーティングシステムで長い歴史があります。Linuxシステムは通常、LinuxカーネルとGNU tarが含まれているGNUソフトウェアの融合です。このtar履歴はすべて、経験豊富な技術者の大部分が、ドキュメントが参照されていないため使用方法を知っていることを意味しています。新しいユーザーの場合、ソフトウェアが非常に長い間存在しているため、多くのドキュメントがあります。

いたるところに見られる、またはどこにでもあるようなユビキタス。ある程度受け入れられている誤用は、外見が普遍的ではないが、人口の十分な割合が遍在していると認められる場合です。 7th Edition Unixは、Sun OS / Solaris、AIX、HPUX、AIX、BSDなどを含むUnixの最大バージョンの祖先ですunix上のtarのさまざまな実装間での高度な相互互換性もあります。MacOS(OS 10以降)はBSDに基づいているため、tarもあります。LinuxはGNU Tarを含むGNUソフトウェアを使用するため、tarのすべてのフレーバーでtarを使用できます。そして、ビルトインとしては利用できませんが、cygwinやネイティブの GNU Tarを含むWindowsで利用可能なtarの多くの実装があります。特にGNU TarはほとんどのUnicesとWindowsで利用可能で、OS間でのファイルの移行に適しています。

作品には大きな変更なしに長い時間のために機能していますのように。すべての主要なプラットフォームですぐに使用できます(Windowsは追加ソフトウェアとして使用できます)。この形式は、プラットフォーム間の交換を容易にするすべての主要なプラットフォームでもサポートされています。移植性の高いアーカイブを簡単に作成する方法として使用されているだけでなく、tarパイプは、特に異種環境間でディレクトリツリーをコピーするための標準的なUnixイディオムです。要するに、それはそれがうまくいくことをするので、周りにあり、まだ頻繁に使用されています。


5
すべての原因に関しては、この答えは何とか私のために動作しません...それ単純な、短いです、そして
GNAT

5
... 1)ソフトウェア開発では、「従来の」重みはゼロ未満です。それ以外の場合は、パンチカードを使用してIBM-360でCOBOLをコーディングします。「それは伝統的だ」と言っては...まったく何も説明しない
ブヨ

5
... 2)「ユビキタス」 ...本当に?UnixからWindowsに切り替えたときに気づいたことの1つは、誰もtarを使用しておらず、tarがなければすべてうまくいったことです。数年の幸せなコーディングの後に、かつてtarが必要になったとき、Windowsバージョンを見つけるのにかなり時間がかかりました。それはどこにでもありますか?...私は休憩を与える
GNAT

4
... 3)「それは動作します」 - どんな種類の作業と、なぜタールによって行われるのを説明せずに、これはただ手を振っているだけです。かなり前のことですが、タールについて知ったときのショックを今でも覚えています。圧縮しないユーティリティは、私には役に立たないと感じました。もちろん私が間違っていたが、バックならば、誰かが同じよう一語文で私を「教育」にしようと、それは動作します ...私は「いいえ、それはオナニー」だと思うだろう
ブヨ

4
...要約すると、このゼロの努力、純粋に意見のある答えには、説明と文脈が欠けています。作成されたステートメントは、説明もバックアップもされていません。過度に一般化された言葉遣いは、質問に答えたのでなく、質問された内容を繰り返しただけのようです。
gnat
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.