TAR.GZをオンラインでTAR.XZに変換
GZIPからXZ圧縮にアップグレードすれば、ファイルサイズを最大限削減できます。XZ(LZMA2)は一般的な形式の中で最も高い圧縮率を持ち、GZIPと比べてサイズを30~50%削減しながら高速な展開も維持します。この変換により、アーカイブを現在のLinux標準に更新できます。
TAR.XZ形式は、ソースコード、Linuxカーネルのリリース、ソフトウェアパッケージの配布において好んで使われる形式になっています。Debian、Fedora、Arch Linuxなどの主要ディストリビューションは、今ではパッケージアーカイブにTAR.XZを使用しています。TAR.GZから変換すれば、ダウンロードサイズの縮小とストレージコストの削減という恩恵を受けられます。
なぜTAR.XZにアップグレードするのか?
- 最高の圧縮率 — XZは一般的なアーカイブ形式の中で最も小さいファイルを生成
- 高速な展開 — より小さいファイルサイズを実現しながらBZIP2より速く展開
- 最新の標準 — Linuxカーネル、GNUプロジェクト、主要ディストリビューションで採用
- 並列処理対応 — XZはpixzやpxzツールを使えば複数のCPUコアを活用可能
- 整合性チェック — XZはデータ検証用のCRC64チェックサムを内蔵
変換の仕組み
TAR.GZからTAR.XZへの変換は2段階の処理です。まずGZIP圧縮層を取り除いて元のTARアーカイブを取り出し、次にLZMA2符号化を使うXZアルゴリズムで再圧縮します。ファイルの中身、パーミッション、タイムスタンプ、所有者情報、シンボリックリンクはすべてそのまま維持されます。
変換は当社サーバー上で自動的に行われます。TAR.GZ ファイルをアップロードすると、最適化された TAR.XZ アーカイブをダウンロードできます。gzip から xz への再圧縮は CPU 負荷の高い処理で、特に数ギガバイト規模のアーカイブではサーバー側のハードウェアが大きく効きます。
圧縮方式の比較: GZIPとXZ
GZIPはLZ77とハフマン符号化を組み合わせたDEFLATEアルゴリズムを使用します。XZはより大きな辞書サイズとより高度なパターンマッチングを用いるLZMA2を使用します。一般的なソフトウェアアーカイブでは、XZは30~50%高い圧縮率を実現します。その代償として圧縮速度は遅くなりますが、展開速度は速いままです。
XZの辞書はGZIPの32KBウィンドウに対し、最大1.5GBまで拡大できます。これによりXZはより広範囲のデータからパターンを見つけ出せるため、似た内容が大きなファイル全体に繰り返し現れるソースコード、ログファイル、データベースダンプで特に効果を発揮します。
最新のLinuxディストリビューションは、公式リリースにXZを好んで使用します。Linuxカーネルや主要プロジェクトがTAR.XZで配布するのは、ファイルサイズの削減がダウンロード時間とミラーサーバーのストレージコストを大きく減らせるためです。
リソース要件
デフォルト設定のXZ圧縮は約100~200MBのメモリを使用し、GZIPの控えめな要件よりはるかに多くなります。最大圧縮(-9e)では数ギガバイトのメモリが必要になることもあります。ただし、展開時に必要なメモリは、作成時の圧縮レベルに関わらず20~50MB程度です。
XZは圧縮速度が明らかに遅く、GZIPの5~10倍かかることもよくあります。一度圧縮すれば何度も配布されるファイル(ソフトウェアリリースやカーネル配布物)では、この代償には十分な意味があります。頻繁に更新されるアーカイブでは、GZIPの速度の利点がXZのサイズの利点を上回ることがあります。
互換性に関する注意点
XZ対応は2010年頃にほとんどのLinuxディストリビューションに追加されました。最新のシステムにはxz-utilsが標準搭載されています。非常に古いシステムや組み込みLinuxディストリビューションではXZに対応していない場合があります。旧式環境との互換性が必要な場合、ファイルサイズは大きくなりますがTAR.GZの方が無難な選択肢です。重要な配布物にXZを採用する前に、対象システムでのテストをおすすめします。