1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
|
Lzip for Debian
===============
1. Lzip implementations
-----------------------
Lzip is available in different implementations:
lzip original C++ implementation
plzip parallel C++ implementation
lziprecover C++ implementation with extra recovery functionality
clzip C implementation
lunzip C implementation, decompressor only
xlunzip C implementation using lzip_decompress kernel module, decompressor only
lzd simple C implementation, decompressor only, educational purpose
minilzip simple C implementation using lzlib library
pdlzip simple C implementation, Public Domain
All Lzip implementations are fully compatible (files can be compressed and
decompressed with any implementation interchangeably).
All Lzip implementations support the same command line switches: if an option
is not implemented it is silently ignored (e.g. the -n option to set the number
of threads is accepted by all implementations but only plzip makes use of it).
2. update-alternatives
----------------------
On Debian based systems all Lzip implementations are installed as
lzip.$implementation (e.g. /usr/bin/lzip.plzip) and /usr/bin/lzip is a symlink
managed by update-altenatives to point to the currently selected
implementation. All Lzip packages provide the virtual lzip-alternatives package.
The following automatic priorities are used:
Decompressors:
xlunzip -3000
lzd -2000
lunzip -1000
Compressor and decompressors:
minilzip 1000
pdlzip 2000
clzip 3000
lziprecover 4000
lzip 5000
plzip 6000
This allows:
* users to manually switch the implementation conveniently with:
sudo update-alternative --config lzip
if more than one Lzip imlementation is installed.
* automatically have the system use the 'best' implementation installed
(using the priorities listed above, e.g. installing plzip will superseed
lzip automatically).
* switching transparently between implementations, e.g. globally using
the multi-threaded plzip instead of the single-threaded lzip requires only
one command:
sudo update-alternatives --set lzip /usr/bin/lzip.plzip
No scripts or commands need to be changed. If you were using lzip
before, install plzip and all your Lzip operations are now parallelized
automatically.
Additional lzip-compressor and lzip-decompressor are provided, both as virtual
packages as well as alternatives in /usr/bin. This allows one to use a mixed
mode of setting lzip alternatives globally, such as using plzip for
decompression and lzip for compression.
3. Best practice
----------------
To make the best use of Lzip, the following should be considered:
* use lzip in scripts and commands, don't hardcode a specific implementation
(e.g. use lzip, not plzip).
* use alternative depends in debian packages, don't depend on a specific
implementation (e.g. use 'Depends: lzip-alternative | lzip' or
'Depends: lzip-alternative | plzip', not 'Depends: lzip').
* use compressor or decompressor explicitly (e.g. use
'Depends: lzip-decompressor | lunzip' if you don't need to compress files).
4. See also
-----------
* tarlz: archiver with multimember lzip compression
* zutils: utilities for dealing with compressed files transparently
* Xz format inadequate for long-term archiving
http://lzip.nongnu.org/xz_inadequate.html
-- Daniel Baumann <daniel.baumann@progress-linux.org> Sun, 26 Aug 2018 11:06:17 +0200
|