8.7. Bzip2-1.0.8

Bzip2 パッケージはファイル圧縮、伸長 (解凍) を行うプログラムを提供します。 テキストファイルであれば、これまでよく用いられてきた gzip に比べて bzip2 の方が圧縮率の高いファイルを生成できます。

概算ビルド時間: 0.1 SBU 以下
必要ディスク容量: 7.3 MB

8.7.1. Bzip2 のインストール

本パッケージのドキュメントをインストールするためにパッチを適用します。

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

以下のコマンドによりシンボリックリンクを相対的なものとしてインストールします。

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

man ページのインストール先を正しいディレクトリに修正します。

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

Bzip2 をコンパイルするための準備をします。

make -f Makefile-libbz2_so
make clean

make パラメーターの意味

-f Makefile-libbz2_so

このパラメーターは Bzip2 のビルドにあたって通常の Makefile ファイルではなく Makefile-libbz2_so ファイルを利用することを指示します。 これはダイナミックライブラリ libbz2.so をビルドし Bzip2 の各種プログラムをこれにリンクします。

パッケージのコンパイルとテストを行います。

make

パッケージをインストールします。

make PREFIX=/usr install

共有ライブラリをインストールします。

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

共有ライブラリ名は標準化されておらず、ディストロによってさまざまに命名されています。 上の手順では libbz2.so.1.0 をインストールしましたが、ディストロによってはたとえば Kbd などのようなアプリケーションが、それとは別のライブラリ名を期待しているものがあります。 そういったものに対して、互換性のためにシンボリックリンクを生成します。

ln -sv libbz2.so.1.0.8 /usr/lib/libbz2.so.1
[注記]

注記

このシンボリックリンクを用いた方法は、ここでのみ有効なものです。 というのも、ライブラリ名を別のものにしているのは、ディストロ管理者の美学に基づく結果であって、決して ABI 非互換性を理由とするものではないからです。 一般的にライブラリ名が異なっているとしたら、それは ABI 互換性がない可能性を意味します。 したがってその違いを、シンボリックリンクによって隠すことは、不適切である可能性が高くなります。 ライブラリ名に関する詳細は 「アップグレードに関する問題」 を参照してください。

共有化された bzip2 実行モジュールを /usr/bin ディレクトリにインストールします。 またシンボリックリンクにより bzip2 のコピーを 2 つ作ります。

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

不要なスタティックライブラリを削除します。

rm -fv /usr/lib/libbz2.a

8.7.2. Bzip2 の構成

インストールプログラム: bunzip2 (bzip2 へのリンク), bzcat (bzip2 へのリンク), bzcmp (bzdiff へのリンク), bzdiff, bzegrep (bzgrep へのリンク), bzfgrep (bzgrep へのリンク), bzgrep, bzip2, bzip2recover, bzless (bzmore へのリンク), bzmore
インストールライブラリ: libbz2.so
インストールディレクトリ: /usr/share/doc/bzip2-1.0.8

概略説明

bunzip2

bzip2 で圧縮されたファイルを解凍します。

bzcat

解凍結果を標準出力に出力します。

bzcmp

bzip2 で圧縮されたファイルに対して cmp を実行します。

bzdiff

bzip2 で圧縮されたファイルに対して diff を実行します。

bzegrep

bzip2 で圧縮されたファイルに対して egrep を実行します。

bzfgrep

bzip2 で圧縮されたファイルに対して fgrep を実行します。

bzgrep

bzip2 で圧縮されたファイルに対して grep を実行します。

bzip2

ブロックソート法 (バロウズ-ホイラー変換) とハフマン符号化法を用いてファイル圧縮を行います。 圧縮率は、従来用いられてきたLempel-Zivアルゴリズムによるもの、例えば gzip コマンドによるものに比べて高いものです。

bzip2recover

壊れた bzip2 ファイルの復旧を試みます。

bzless

bzip2 で圧縮されたファイルに対して less を実行します。

bzmore

bzip2 で圧縮されたファイルに対して more を実行します。

libbz2

ブロックソート法 (バロウズ-ホイラー変換) による可逆的なデータ圧縮を提供するライブラリ。