XZ Utils
XZ Utils | |
---|---|
Basisdaten
| |
Entwickler | Tukaani Project (Slackware) |
Betriebssystem | Unix-ähnliche (BSD, Linux, Solaris) |
Programmiersprache | C |
Kategorie | Datenkompressionsprogramm |
Lizenz | großteils gemeinfrei |
https://tukaani.org/xz/ |
Die XZ Utils (früher LZMA Utils) sind eine Sammlung von freien Packprogrammen für Unixoide Systeme, die im Rahmen des Tukaani Project der Linux-Distribution Slackware entstanden ist.
Der Datenkompressionsalgorithmus basiert auf einer angepassten Portierung des LZMA-Codes des LZMA-SDK von Igor Pavlov auf Linux und andere Unix-ähnliche Plattformen.
Die XZ Utils bieten die von den etablierten Linux-Packprogrammen gzip und bzip2 gewohnte Handhabung gepackter Dateien für den fortschrittlichen Lempel-Ziv-Markow-Datenkompressionsalgorithmus (LZMA) sowie eine Basis für dessen einfache Integration in andere Programme. Dazu haben sie eine sehr ähnliche Bedienung, erledigen ebenfalls das Archivieren mehrerer Dateien nicht selbst, sondern setzen dafür auf die Kombination mit reinen Archivformaten wie tar und führen auch ein neues Dateiformat mit vergleichbaren Eigenschaften (xz, siehe unten) ein.
Der Quelltext ist großteils gemeinfrei, ansonsten unter verschiedenen Freie-Software-Lizenzen.
Die Kompression ist effizienter, aber meist erheblich langsamer als die Kompression mit gzip, bzip2 oder rar, führt dafür jedoch zu um 30 % bzw. 15 % kleineren Ergebnissen als bei gzip bzw. bzip2. Bei LZMA-basierter Kompression ergeben sich mit ausreichend Arbeitsspeicher von den Kompressionseinstellungen weitgehend unabhängige, gleichbleibende Dekompressionszeiten, die in der Regel deutlich unter den variierenden Zeiten von bzip2 liegen, jedoch im Vergleich mit gzip deutlich zurückbleiben.[1]
Die XZ Utils bestehen aus mehreren einzelnen Werkzeugen zur Handhabung von xz-Dateien:
- xz
- ist ein Kommandozeilenprogramm, das analog zu gzip oder bzip2 arbeitet und ein nachempfundenes Bedienungskonzept hat
- liblzma
- ist eine Programmbibliothek mit einer Programmierschnittstelle, die sich an die der zlib anlehnt
- xzdec
- – ein reines Dekompressionswerkzeug
Weiterhin gibt es eine Sammlung von Shell-Skripten zur Erleichterung des Umgangs mit xz-Dateien.
Dadurch stehen die Befehle xz
, unxz
, xzcat
und xzgrep
(bzw. zur Abwärtskompatibilität zu den älteren LZMA Utils auch lzma
, unlzma
, lzcat
und lzgrep
) zur Verfügung.
Datenformat
Die XZ Utils (wie auch die LZMA Utils) können mit dem 7z-Datenformat der LZMA-Referenzimplementierung(en) (7-Zip, LZMA SDK) nicht umgehen. Sie erzeugen Dateien im eigenen xz-Format, das analog zum gz- und bz2-Format funktioniert. Umgekehrt können 7-Zip und das LZMA SDK seit den 9er-Versionen aber auch xz-Dateien öffnen.
Geschichte
Das Projekt begann unter dem Namen LZMA Utils als eine Unix-Portierung des LZMA-Codes aus dem LZMA-SDK, welche nur rohe LZMA-Ströme ohne jegliche Kopfdaten erzeugte. Die XZ Utils können das Verhalten der Kommandozeilenprogramme der LZMA Utils emulieren und dessen Dateien öffnen. Die Umbenennung geschah am 31. Dezember 2008 mit Version 4.999.7beta. Seither wird auch das Dateiformat (xz) nicht mehr verändert. Seitdem es mit xz auch ein passendes Containerformat hat, ist es nach lzip die zweite Komplettlösung zur Nutzung von LZMA in Unix-Manier und hat diesem gegenüber mittlerweile schon größere Verbreitung erlangt.
Als das LZMA SDK (von dem die XZ Utils abgeleitet sind) mit Version 4.61 beta vom 23. November 2008 gemeinfrei wurde, wurde infolgedessen auch die Lizenz der XZ Utils entsprechend umgestellt.
Plattformen
Die XZ Utils sind für diverse Linux-Distributionen erhältlich. Als Binärpaket sind sie unter anderem als .deb-Paket sowie .rpm-Paket verfügbar. Damit kann die Software bei den meisten Linuxdistributionen problemlos installiert werden. Pakete sind zum Beispiel für Debian, Ubuntu, Gentoo, Mandriva, openSUSE sowie Red Hat verfügbar.
Auch für BSD-Betriebssysteme existieren Binärpakete. Alternativ können Benutzer von BSD-Betriebssystemen wie OpenBSD, NetBSD, FreeBSD, DragonFly BSD die Software auch durch das Port-System installieren.
Ab Version 4.999.8beta gibt es auch experimentelle Unterstützung für Windows.
Siehe auch
- lzip ist ein ähnliches Projekt
- p7zip ist die direkte Portierung der Kommandozeilenwerkzeuge von 7-Zip auf unixoide Betriebssysteme
Weblinks
- Offizielle Webpräsenz
- Projektseite bei SourceForge
- Manpage (englisch)
- LZMA SDK (englisch)