XZ Utils

XZ Utils
Original author(s) Lasse Collin
Developer(s) The Tukaani Project
Stable release
5.2.2 / September 29, 2015 (2015-09-29)[1]
Written in C
Operating system Cross-platform
Type Data compression
License Most source code public domain software,[2] parts of sub-systems under GNU LGPL v2.1, GNU GPL v2, GNU GPL v3
Website tukaani.org/xz/

XZ Utils (previously LZMA Utils) is a set of free command-line lossless data compressors, including LZMA and xz, for Unix-like operating systems and, from version 5.0 onwards, Microsoft Windows.

XZ Utils consists of two major components:

Various command shortcuts exist, such as lzma (for xz --format=lzma), unxz (for xz --decompress; analogous to gunzip) and xzcat (for unxz --stdout; analogous to zcat)

XZ Utils can compress and decompress both the xz and lzma file formats, but since the LZMA format is now legacy,[3] XZ Utils compresses by default to xz.

Implementation

Both the behavior of the software as well as the properties of the file format have been designed to work similarly to those of the popular Unix compressing tools gzip and bzip2. It consists of a Unix port of Igor Pavlov's LZMA-SDK that has been adapted to fit seamlessly into Unix environments and their usual structure and behavior.

Just like gzip and bzip, xz and lzma can only compress single files (or data streams) as input. They cannot bundle multiple files into a single archive – to do this an archiving program is used first, such as tar.

Compressing an archive:

xz   my_archive.tar    # results in my_archive.tar.xz
lzma my_archive.tar    # results in my_archive.tar.lzma

Decompressing the archive:

unxz    my_archive.tar.xz      # results in my_archive.tar
unlzma  my_archive.tar.lzma    # results in my_archive.tar

Version 1.22 or greater of the GNU implementation of tar has transparent support for tarballs compressed with lzma and xz, using the switches --xz or -J for xz compression, and --lzma for LZMA compression.

Creating an archive and compressing it:

tar -c --xz   -f my_archive.tar.xz   /some_directory    # results in my_archive.tar.xz
tar -c --lzma -f my_archive.tar.lzma /some_directory    # results in my_archive.tar.lzma

Decompressing the archive and extracting its contents:

tar -x --xz   -f my_archive.tar.xz      # results in /some_directory
tar -x --lzma -f my_archive.tar.lzma    # results in /some_directory

Development and adoption

Development of XZ Utils took place within the Tukaani Project, which was led by Mike Kezner, by a small group of developers who once maintained a Linux distribution based on Slackware. Most of the source code for XZ Utils has been released into the public domain, with the rest being subject to different free software licenses.[2] Specifically, most core parts are public domain software, while parts of the bulk system are under GNU LGPL v2.1 and parts of the build system under GNU GPL v2 and GNU GPL v3. The resulting software binary is therefore under the GPL.

Binaries are available for FreeBSD, Linux systems, Microsoft Windows, and FreeDOS. A number of Linux distributions, including Fedora, Slackware, Ubuntu, Debian, and Arch Linux,[4] use xz for compressing their software packages. The GNU FTP archive also uses xz.

References

  1. "XZ Utils 5.2.2". [xz-devel]. Lasse Collin. 2015-09-29. Retrieved 2015-09-29.
  2. 1 2 Licensing on tukaani.org "The most interesting parts of XZ Utils (e.g. liblzma) are in the public domain. You can do whatever you want with the public domain parts. Some parts of XZ Utils (e.g. build system and some utilities) are under different free software licenses such as GNU LGPLv2.1, GNU GPLv2, or GNU GPLv3."
  3. LZMA Utils, retrieved 2011-01-25
  4. Pierre Schmitz (2010-03-23). "News: Switching to xz compression for new packages".
This article is issued from Wikipedia - version of the 4/23/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.