web-dev-qa-db-ja.com

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

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

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

29
Joe Z.

見出しの質問に答えるために:tar.gz/tar.bz2は、20年以上前の非常に非常に長い時間、そしておそらくそれ以上に、Linuxソースコードを配布するための標準になりました。かなり前に、Linuxが登場することさえありました。

実際、tarは(t)ape(ar)chiveの略です。考えてみてください リール 難しいと、どれだけ古いかがわかります。 ba-dum-bump。

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

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

PKZipの圧縮アルゴリズムの多くは元のメーカーに固有のものであり、Dos/Windowsバージョンに追加された最後のアルゴリズムはDeflate(RFC 1951)で、Implodeよりもわずかに優れたパフォーマンスを発揮しました。 。 GzipはDeflateアルゴリズムを使用します。

RAR圧縮アルゴリズムは独自仕様ですが、圧縮解除プログラムのgratisオープンソース実装があります。 RARlab からのRARおよびWinRARの公式リリースはgratisではありません。

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

TL; DRバージョン:

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

31
ikmac

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

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

16
John Bickers

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

8
Pieter B

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

Ziprarは適切であり、Windowsの世界ではより一般的です

5
Martin Beckett

それは伝統的でユビキタスであり、機能します。さらに、私はそれがいくぶん自明であると思いました。

更新

申し訳ありませんが、異機種混在環境の管理者として私が何を知っているか、またはこれまでに経験したことがほとんどの人に知られていないことを忘れています。

伝統習慣や慣習のように、時間とともに根付いてきました。 tarはTape ARchiveから派生 古いテープバックアップテクノロジーを参照しているため、これには歴史の根拠があることがわかります。 第7版Unix で1979にさかのぼって、tpに取って代わったさまざまなUnixオペレーティングシステムで長い歴史があります。 Linuxシステムは通常、LinuxカーネルとGNUソフトウェアの統合GNU tarはその一部です。このtar履歴はすべて、経験豊富な技術の大半を意味しますソフトウェアは古くからあるため、ドキュメントを参照しなくても使い方を知っている人もいます。

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

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

4
dietbuddha