lzipは、Lempel-Ziv-Markov chain-Algorithm(LZMA)を使用し、gzipやbzip2などのよくあるUnix系の圧縮ツールの利用者に馴染み深いユーザインタフェースを備えたデータを圧縮するための自由なコマンドラインツールである。
gzipやbzip2と同様に、複数のファイルを圧縮するための結合をサポートしているが、tarやcpioなどのUnix系のプログラムによってアーカイブファイルにまとめてから圧縮するのが慣例である。lzipはマルチボリュームアーカイブを作成するために出力を分割できる。
lzipはgzipと同程度の速度での圧縮か、殆どのファイルをbzip2よりも圧縮できる。また、gzipとbzip2の中間の速度で展開できる。
lzipによって生成されるファイルには通常拡張子として.lzが付けられ、メディアタイプはapplication/lzipとなる。
lzipのプログラム群はAntonio Diaz DiazによってC++とC言語で書かれており、GNU General Public License(GNU GPL)のバージョン2かそれ以降の条件に基づいて自由ソフトウェアとして配布されている。
歴史
7-Zipは2000年に公開された。Unix系オペレーティングシステムでLZMAを使用するツールが利用できるようになったのは、2004年に7-Zipのコマンドライン版の移植版のp7zipが公開されて以降である。同年、lzma_aloneと呼ばれるプログラムを含むLZMA SDK(ソフトウェア開発キット)が公開された。それから1年以内にLasse Collinが(当初は)lzma_aloneにgzip風のインタフェースを実装するラッパースクリプト群だけで構成されたLZMA Utilsを公開した。2008年、Antonio Diaz Diazは生のLZMAデータストリームの代わりにチェックサムとマジックナンバーを含むコンテナフォーマットを使用するlzipを公開し、LZMAを使用するための完全なUnix様式の解決策を提供した。それにも関わらず、LZMA Utilsは同様の機能を持つように拡張され、XZ Utilsに改名された。
機能
ファイルの整合性
lzipは「マルチメンバーアーカイブ」と呼ばれる独立して展開できるデータセクションを持つアーカイブを作成できる。例えば、基礎となるファイルがtarアーカイブである場合、アーカイブの他の部分が破損している場合でも破損していないファイルを展開できる。
ファイルフォーマットに関しては、各圧縮ストリームの統合された32ビットチェックサムによる整合性チェックの有効化に特に重点が置かれており、破損したデータを検出して再構築するためにlziprecoverプログラムと組み合わせて使用される。この回復ツールは各複製のファイルの異なる部分に損傷がある可能性のあるアーカイブの複数の複製を統合できる。
並列処理
lzipにはデフォルトのディストリビューションで提供される2つの並列処理用のインタフェースがある。
採用
インストール方法
一般的なLinuxディストリビューションでは、lzipは通常公式パッケージリポジトリからインストールできる。
Cygwinは保守されているオプションのパッケージとしてlzipを提供しており、GNU tarユーティリティプログラムは.lzアーカイブをサポートしている。Mingw-w64はMSYS2で保守されているパッケージを通じてlzipを配布している。
サポート
- GNU Autotoolsはlzipをサポートしている。
AM_INIT_AUTOMAKEにdist-lzipを追加するとlzipで圧縮されたtarアーカイブを構築する。 - GNU tarのバージョン1.23以降では透過的にファイルを圧縮するためにlzipを利用できる。
- GNOMEのFile Rollerはlzipファイルをサポートしている。
アプリケーション
- LinuxディストリビューションのDragora GNU/Linux-Libreはソフトウェアパッケージにlzipを採用している。
- lzipはIANAのTime Zone Databaseと、GNUによるLinuxカーネルを配布するために使用されている。
- 欧州議会はデータベースの完全なダンプをlzipで圧縮されたJSONフォーマットで公開している。
- lzipはアメリカ航空宇宙局の惑星データシステム(PDS)で使用されている。
- GNU Multi-Precision Library(GMP)、GNU edはパッケージをlzipで配布している。
