8.7. Bzip2-1.0.8

#### Linux From Scratch - Version r13.0-127-systemd

### Chapter 8. Installing Basic System Software

- Prev

  Zlib-1.3.2

- Next

  Xz-5.8.3

- Up
- Home

# 8.7. Bzip2-1.0.8

The Bzip2 package contains programs for compressing and decompressing files. Compressing text files with bzip2 yields a much better compression percentage than with the traditional gzip.

Approximate build time: less than 0.1 SBU
Required disk space: 7.3 MB

## 8.7.1. Installation of Bzip2

Apply a patch that will install the documentation for this package:

    patch -Np1 -i ../bzip2-1.0.8-install_docs-1.patch

The following command ensures installation of symbolic links are relative:

    sed -i 's@\(ln -s -f \)$(PREFIX)/bin/@\1@' Makefile

Ensure the man pages are installed into the correct location:

    sed -i "s@(PREFIX)/man@(PREFIX)/share/man@g" Makefile

Prepare Bzip2 for compilation with:

    make -f Makefile-libbz2_so
    make clean

The meaning of the make parameter:

`-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.

Compile and test the package:

    make

Install the programs:

    make PREFIX=/usr install

Install the shared library:

    cp -av libbz2.so.* /usr/lib
    ln -sfv libbz2.so.1.0.8 /usr/lib/libbz2.so

The name of the shared library isn't standardized and it varies among distros. The instruction above has installed `libbz2.so.1.0`, but some applications, for example Kbd, expects a different name `libbz2.so.1` that some other distros are using. Create a compatibility symlink for them:

    ln -sfv libbz2.so.1.0.8 /usr/lib/libbz2.so.1

### Note

The symlink approach is only valid here because the library name difference is a result of different aesthetic views of the distro maintainers, not real ABI incompatibilities. In general a library name difference most likely indicates an ABI incompatibility and it would be very likely invalid to “hide” the difference via a symlink. Read Section 8.2.1, “Upgrade Issues” for details about library names.

Install the shared bzip2 binary into the `/usr/bin` directory, and replace two copies of bzip2 with symlinks:

    cp -v bzip2-shared /usr/bin/bzip2
    for i in /usr/bin/{bzcat,bunzip2}; do
      ln -sfv bzip2 $i
    done

Remove a useless static library:

    rm -fv /usr/lib/libbz2.a

## 8.7.2. Contents of Bzip2

Installed programs: bunzip2 (link to bzip2), bzcat (link to bzip2), bzcmp (link to bzdiff), bzdiff, bzegrep (link to bzgrep), bzfgrep (link to bzgrep), bzgrep, bzip2, bzip2recover, bzless (link to bzmore), and bzmore
Installed libraries: libbz2.so
Installed directory: /usr/share/doc/bzip2-1.0.8

### Short Descriptions

bunzip2 | Decompresses bzipped files
bzcat | Decompresses to standard output
bzcmp | Runs cmp on bzipped files
bzdiff | Runs diff on bzipped files
bzegrep | Runs egrep on bzipped files
bzfgrep | Runs fgrep on bzipped files
bzgrep | Runs grep on bzipped files
bzip2 | Compresses files using the Burrows-Wheeler block sorting text compression algorithm with Huffman coding; the compression rate is better than that achieved by more conventional compressors using “Lempel-Ziv” algorithms, like gzip
bzip2recover | Tries to recover data from damaged bzipped files
bzless | Runs less on bzipped files
bzmore | Runs more on bzipped files
`libbz2` | The library implementing lossless, block-sorting data compression, using the Burrows-Wheeler algorithm

- Prev

  Zlib-1.3.2

- Next

  Xz-5.8.3

- Up
- Home