TAR.BZ2形式について
TAR.BZ2(.tar.bz2や.tbz2とも表記)は、TARアーカイブとBZIP2圧縮を組み合わせた形式です。BZIP2はBurrows-Wheeler変換のあとにハフマン符号化を行い、GZIPより高い圧縮率を持ちます。当社のテストでは、ソースコードで21%、混在セットで約2%小さくなりました。XZが主流になる前の2000年代から2010年代初めにかけてLinuxディストリビューションで広く使われ、今でもほぼすべてのUnixシステムで開けます。
TAR.BZ2から変換する理由
TAR.BZ2をZIPに変換すると、追加ツールなしでWindowsやmacOSで開けるようになります。TAR.GZへの変換はサイズを少し犠牲にして展開を大幅に速くします。ある計測では、GZIPはBZIP2より約9倍速く展開しました。頻繁に開くアーカイブやパッケージのインストールで効果があります。TAR.XZへの変換では、当社のテストで混在セットがさらに5%、プログラムのバイナリが18%小さくなり、大きなソフトウェア配布に役立ちます。7Zに変換すれば、7-Zipユーザーがそのまま開ける形式になります。
BZIP2圧縮のパフォーマンス
BZIP2圧縮はGZIPより低速ですが、ソースコード、ドキュメント、ログファイルのようなテキスト中心のコンテンツでは特にファイルサイズが小さくなります。展開速度はGZIP(最速)とXZ(最も低速)の中間です。このアルゴリズムは圧縮ブロックごとに900KBのメモリを使用するため、リソースが限られる環境では無視できない負荷になることがあります。最新のディストリビューションではXZに取って代わられつつありますが、BZIP2は今も広くサポートされており、Unix環境での信頼性には長い実績があります。
変換先フォーマットの選び方
技術に詳しくないユーザーや、標準搭載の解凍ツールが重要なWindows中心の環境に配布する場合はZIPに変換しましょう。受け取り側が適切なソフトを持っていて、ファイルサイズを最優先したい場合は最大圧縮の7Zを選んでください。展開速度や幅広いUnix互換性がBZIP2の圧縮優位性より重要な場合はTAR.GZを選びましょう。TARのアーカイブ構造とUnixのファイル属性を維持しながら可能な限り高い圧縮率を求める最新のLinuxシステムには、TAR.XZへのアップグレードが適しています。
BZIP2と最新の代替形式の比較
BZIP2はサイズでは中間、速度では最下位です。当社のテストでは、混在セットでGZIPより約2%小さいもののXZより5%大きく、ある計測では3つの中で最も展開が遅く、GZIPの約9分の1、XZの約4分の1の速さでした。XZが広く使えるようになる前の時代に普及した形式です。
新しいプロジェクトでは、LinuxのエコシステムでXZがBZIP2にほぼ取って代わっています。ただし、BZIP2は旧式システムや.tar.bz2アーカイブを前提とするビルド環境との互換性という点で今も価値があります。多くのオープンソースプロジェクトは、最新形式と並行して今もBZIP2版のダウンロードを提供しています。
Unix属性の保持
TARベースの形式間(TAR.BZ2、TAR.GZ、TAR.XZ)での変換では、パーミッション、所有者情報、タイムスタンプ、シンボリックリンク、特殊ファイルなど、Unixのファイル属性がすべて維持されます。実行ファイルに正しいパーミッションが必要なソフトウェア配布ではこれが重要です。ZIPや7Zへ変換すると一部のUnix固有のメタデータが失われる場合があり、サーバーへのデプロイでは注意が必要です。