6.28. Installing Bzip2-1.0.1

Estimated build time:           1 minute
Estimated required disk space:  2 MB

6.28.1. Installation of Bzip2

Install Bzip2 by running the following commands:

make -f Makefile-libbz2_so &&
make bzip2recover libbz2.a &&
ln -s libbz2.so.1.0.1 libbz2.so &&
cp bzip2-shared /bin/bzip2 &&
cp bzip2recover /bin &&
cp bzip2.1 /usr/share/man/man1 &&
cp bzlib.h /usr/include &&
cp -a libbz2.so* /lib &&
rm /usr/lib/libbz2.a &&
cp libbz2.a /usr/lib &&
cd /usr/lib &&
ln -sf ../../lib/libbz2.so &&
cd /bin &&
ln -sf bzip2 bunzip2 &&
ln -sf bzip2 bzcat &&
cd /usr/share/man/man1 &&
ln -sf bzip2.1 bunzip2.1 &&
ln -sf bzip2.1 bzcat.1 &&
ln -sf bzip2.1 bzip2recover.1

Although it's not strictly a part of a basic LFS system it's worth mentioning that a patch for Tar can be downloaded which enables the tar program to compress and uncompress using bzip2/bunzip2 easily. With a plain tar, you have to use constructions like bzcat file.tar.bz|tar xv or tar --use-compress-prog=bunzip2 -xvf file.tar.bz2 to use bzip2 and bunzip2 with tar. This patch provides the -j option so you can unpack a Bzip2 archive with tar xvfj file.tar.bz2. Applying this patch will be mentioned later on when the Tar package is re-installed.

6.28.2. Command explanations

make -f Makefile-libbz2_so: This will cause bzip2 to be built using a different Makefile file, in this case the Makefile-libbz2_so file which creates a dynamic libbz2.so library and links the bzip2 utilities against it.

The reason we don't use make install is that bzip2's make install doesn't install the shared libbz2.so, nor the bzip2 binary that's linked against that library. So we have no choice but to manually install the files.

6.28.3. Contents

The Bzip2 packages contains the bzip2, bunzip2, bzcat and bzip2recover programs.

6.28.4. Description

6.28.4.1. Bzip2

bzip2 compresses files using the Burrows-Wheeler block sorting text compression algorithm, and Huffman coding. Compression is generally considerably better than that achieved by more conventional LZ77/LZ78-based compressors, and approaches the performance of the PPM family of statistical compressors.

6.28.4.2. Bunzip2

Bunzip2 decompresses files that are compressed with bzip2.

6.28.4.3. bzcat

bzcat (or bzip2 -dc) decompresses all specified files to the standard output.

6.28.4.4. bzip2recover

bzip2recover recovers data from damaged bzip2 files.

6.28.5. Dependencies

Bzip2-1.0.1 needs the following to be installed:


sh from the bash package

ar from the binutils package
as from the binutils package
ld from the binutils package

cp from the fileutils package
ln from the fileutils package
rm from the fileutils package

gcc from the gcc package

make from the make package