lzip: 高度な圧縮と整合性チェックを両立するコマンドラインツール
lzipは、
Lempel-Ziv-Markov chain-Algorithm(LZMA)をベースにした、
データ圧縮のためのコマンドラインツールです。gzipやbzip2といった一般的な
Unix系圧縮ツールと同様のインターフェースを備えており、ユーザーにとって親しみやすい操作性を提供します。
特徴
- - 圧縮: gzipと同程度の速度での圧縮が可能で、多くのファイルにおいてはbzip2よりも高い圧縮率を実現します。
- - 展開: gzipとbzip2の中間程度の速度で展開できます。
- - ファイル形式: 通常、`.lz`拡張子が付与され、メディアタイプは`application/lzip`となります。
- - マルチボリューム対応: 出力を分割してマルチボリュームアーカイブを作成できます。
- - 並列処理: plzipとtarlzという2つの並列処理インタフェースが提供され、それぞれファイルの並列圧縮とアーカイブの並列処理に対応します。
- - データ整合性: 各圧縮ストリームには32ビットのチェックサムが付与され、データ破損を検出し、lziprecoverプログラムによるデータの復旧を支援します。
歴史
lzipの開発以前には、7-ZipがLZMAを使用するツールとして知られていました。2004年には7-Zipのコマンドライン版であるp
7zipが公開され、続いてLZMA SDKとlzma_aloneが登場しました。その後、LZMA Utilsが開発され、gzipのようなインターフェースを提供するラッパースクリプトが追加されました。2008年にAntonio Diaz Diazによって開発されたlzipは、チェックサムとマジックナンバーを含む
コンテナフォーマットを採用し、LZMAを使用するための包括的なUnixスタイルの解決策を提供しました。その後、LZMA Utilsは拡張され、XZ Utilsとして知られるようになりました。
機能詳細
ファイル整合性
lzipは、独立して展開可能なデータセクションを持つ「マルチメンバーアーカイブ」を作成できます。これにより、アーカイブの一部が破損した場合でも、破損していないセクションを展開できます。各圧縮ストリームには32ビットのチェックサムが含まれており、lziprecoverプログラムと連携して、破損したデータを検出し、複数のアーカイブ複製を統合してデータの復旧を試みることができます。
並列処理
lzipには、以下の2つの並列処理インターフェースがあります。
- - plzip: あらゆるファイルを並列圧縮します。ただし、従来のtarプログラムでは、ストリーム全体を読み込む必要があるため、tarと併用しても展開の並列化はできません。
- - tarlz: tarとlzipを組み合わせ、現代的なアーカイバと同様の並列アーカイバを作成します。tarファイルの境界に合わせてソリッド圧縮ブロックが配置されるため、展開時には特定のメンバーブロックのみを処理できます。
採用事例
lzipは、多くのプロジェクトやシステムで採用されています。
- - Linuxディストリビューション: 一般的なLinuxディストリビューションでは、公式パッケージリポジトリからインストールできます。Dragora GNU/Linux-Libreなど、lzipをソフトウェアパッケージに採用するディストリビューションもあります。
- - パッケージ管理: Cygwin、Mingw-w64でパッケージとして提供されています。
- - GNUツール: GNU Autotoolsがlzipをサポートしており、GNU tarのバージョン1.23以降では透過的にファイルを圧縮するためにlzipを利用できます。
- - ファイルマネージャー: GNOMEのFile Rollerはlzipファイルをサポートしています。
- - データ配布: IANAのTime Zone Database、GNUによるLinuxカーネルの配布、欧州議会のデータベースダンプ、NASAの惑星データシステム(PDS)などで利用されています。また、GNU Multi-Precision Library(GMP)やGNU edなどのパッケージ配布にも利用されています。
インストール
一般的なLinux環境では、パッケージマネージャーを通じて簡単にインストールできます。
CygwinやMSYS2でも提供されています。
関連情報
外部リンク
lzipは、高度な圧縮能力とデータ整合性チェック、並列処理など、多くの利点を持つツールです。様々な環境で利用され、
データ圧縮の効率化に貢献しています。