TAR.XZ形式について
TAR.XZは、TARアーカイブとXZ圧縮を組み合わせた形式で、XZは7Zと同じLZMA2アルゴリズムを使います。圧縮率が高いため現代のLinuxディストリビューションの標準となり、ソフトウェアパッケージではTAR.GZやTAR.BZ2に取って代わりました。当社のテストでは、TAR.XZはソースコードでTAR.GZより28%、TAR.BZ2より9%小さく、プログラムのバイナリではそれぞれ24%と18%小さくなり、ダウンロードサイズと保存容量を減らせます。
TAR.XZから変換する理由
TAR.XZをZIPや7Zに変換すれば、Windowsユーザーでもアーカイブを開けるようになり、Windowsのファイルマネージャーとの連携も向上します。TAR.XZは優れた圧縮率を持ちますが、TAR.GZに変換すれば展開速度が大きく向上し、頻繁にインストールされるパッケージやデプロイの自動化で有用です。旧式システムや組み込み機器の中にはXZに対応していないものもあり、互換性のためTAR.BZ2やTAR.GZへの変換が必要になる場合があります。さらに、ZIPに変換すれば展開にコマンドラインツールが不要になります。
XZ圧縮の技術
XZは、大きな辞書サイズを用いた辞書ベースの圧縮によって高い圧縮率を実現する高度なアルゴリズム、LZMA2を使用します。このアルゴリズムは最大1.5GBの辞書を使用でき、繰り返しパターンの多い大きなファイルで卓越した圧縮を可能にします。その代償として、GZIPやBZIP2と比べて圧縮速度が遅くメモリ使用量も多くなります。ただし展開速度はそれなりに速く、圧縮時に使用した辞書を保持する分のメモリしか必要としないためメモリ効率にも優れています。
変換に適した場面
汎用的な互換性が必要な場合や、Linuxの知識やコマンドラインツールを持たないユーザーを対象とする場合はZIPに変換しましょう。最大限の圧縮を維持しつつ、TAR.XZより優れたWindows互換性が必要な場合は7Zを選んでください。旧式Unixシステムとの幅広い互換性が必要な場合や、ファイルサイズより展開速度が重要な場合はTAR.GZを選びましょう。BZIP2には対応しているがXZには対応していない特定のシステムを対象とする場合のみTAR.BZ2に変換してください。ただし、こうしたケースは最新の環境ではますます少なくなっています。
XZのリソース使用量
XZ圧縮はかなりのメモリを必要とし、デフォルト設定で100~200MB、最大圧縮では数ギガバイトになることもあります。展開はメモリ効率が良く、20~50MBで済みます。圧縮速度はGZIPよりかなり遅くなりますが、展開速度は同程度に速いです。この非対称性から、XZは一度圧縮して何度も配布するファイルに最適です。
ソフトウェア配布におけるTAR.XZ
TAR.XZは、ソースコードやバイナリパッケージの配布における標準形式になっています。Linuxカーネル、GNUコアユーティリティ、ほとんどの主要オープンソースプロジェクトが公式リリースにTAR.XZを使用しています。Debian、Fedora、Archなどのディストリビューションのパッケージマネージャーは、XZ圧縮されたパッケージに依存しています。これほど広く採用されているため、XZツールはほぼすべての最新Unix系システムで利用できます。