このページは「24環境」の情報です

第2回 debianパッケージのインストールとビルド

海老原祐太郎
2002/8/17

debianはソフトウェアをパッケージで管理しています。パッケージに従うとインストールとアンインストールが容易になります。
CAT68701を教材にして debian パッケージの基本的な使い方を解説します。(難易度 ☆)

初期設定

2002/7/21 付けの debian sid sh ベースのdebianを利用してください(base-sh3-020721.tar.gz)
筆者の /etc/apt/sources.list は以下のようになっています

deb http://debian.dodes.org/debian sid main non-free contrib
deb-src http://ftp.jp.debian.org/debian/sid main non-free contrib
deb-src http://non-us.debian.org/debian-non-US sid/non-US main contrib non-free

パッケージ一覧の更新

初めて使うときや時間が空いたときに、パッケージ一覧を update してください(パッケージ一覧の取得)

# apt-get update

パッケージを探す

インストールしたいパッケージを探します(ここでは webserver を例にしています)

# apt-cache search webserver
apache-common - Support files for all Apache webservers
apache-dev - Apache webserver development kit
eperl - Embedded Perl 5 Language
libdotconf-dev - Configuration file parser library - development files
libdotconf1.0 - Configuration file parser library - runtime files
logtrend-httpagent - Daemon for httpd monitoring
pyca - Certification Authority written in python
apache-doc - Apache webserver docs
boa - Lightweight and High Performance WebServer
LightWeightな WebServer 'boa' がよさそうです

インストール

# apt-get install boa
Reading Package Lists... Done
Building Dependency Tree... Done
Package boa has no available version, but exists in the database.
This typically means that the package was mentioned in a dependency and
never uploaded, has been obsoleted or is not available with the contents
of sources.list
E: Package boa has no installation candidate

通常は apt-get install で OKなのですが、パッケージ boa はまだ サーバには無いようです。

ビルド 

セルフでビルドしてみます。ビルドには各種のツールが必要なので、まずは

# apt-get install gcc libc6-dev automake autoconf debhelper flex bison dpkg-dev

くらいをインストールしておきます。 おそらくたくさんのパッケージが追加インストールされるはずです。

ビルドには 'apt-get -b source パッケージ名' をタイプします

supercat:~/build# apt-get -b source boa
Reading Package Lists... Done
Building Dependency Tree... Done
Need to get 133kB of source archives.
Get:1 http://ftp.jp.debian.org sid/main boa 0.94.13-1 (dsc) [594B]
Get:2 http://ftp.jp.debian.org sid/main boa 0.94.13-1 (tar) [122kB]
Get:3 http://ftp.jp.debian.org sid/main boa 0.94.13-1 (diff) [10.5kB]
Fetched 3B in 0s (7B/s)
Skipping unpack of already unpacked source in boa-0.94.13
dpkg-buildpackage: source package is boa
dpkg-buildpackage: source version is 0.94.13-1
dpkg-buildpackage: source maintainer is Peter Palfrader <weasel@debian.org>
dpkg-buildpackage: host architecture is sh3
dpkg-checkbuilddeps: Unmet build dependencies: texinfo texi2html tetex-bin

依存性エラーが出ました。texinfo texi2html tetex-bin が無いといってきていますので、
これらパッケージをインストールします。

# apt-get install texinfo texi2html tetex-bin
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
  libfreetype6 libjpeg62 libkpathsea3 libpng2 libtiff3g libxaw7 tetex-base
  xfree86-common xlibs
The following NEW packages will be installed:
  libfreetype6 libjpeg62 libkpathsea3 libpng2 libtiff3g libxaw7 tetex-base
  tetex-bin texi2html texinfo xfree86-common xlibs
0 packages upgraded, 12 newly installed, 0 to remove and 16  not upgraded.
Need to get 19.1MB of archives. After unpacking 62.0MB will be used.
Do you want to continue? [Y/n]

またもりもりと追加パッケージを要求してきます。
『19.1MBのアーカイブをダウンロードする必要があります。展開すると62MBのディスクを使用します。続けますか?Y/n』
仕方ありません。めげずにインストールします。
その後、再度 ビルドにチャレンジ。

# apt-get -b source boa
Reading Package Lists... Done
Building Dependency Tree... Done
Need to get 133kB of source archives.
Get:1 http://ftp.jp.debian.org sid/main boa 0.94.13-1 (dsc) [594B]
Get:2 http://ftp.jp.debian.org sid/main boa 0.94.13-1 (tar) [122kB]
Get:3 http://ftp.jp.debian.org sid/main boa 0.94.13-1 (diff) [10.5kB]
Fetched 133kB in 4s (27.0kB/s)
dpkg-source: extracting boa in boa-0.94.13
dpkg-buildpackage: source package is boa
dpkg-buildpackage: source version is 0.94.13-1
dpkg-buildpackage: source maintainer is Peter Palfrader <weasel@debian.org>
dpkg-buildpackage: host architecture is sh3
debian/rules clean
dh_testdir
dh_testroot
rm -f build-stamp
cd src;make mrclean
make[1]: Entering directory `/root/build/boa-0.94.13/src'
 
中略

        chmod 644 debian/boa/DEBIAN/md5sums
        chown 0.0 debian/boa/DEBIAN/md5sums
dh_builddeb
        dpkg --build debian/boa ..
dpkg-deb: ../boa_0.94.13-1_sh3.deb にパッケージ `boa' を構築しています
 dpkg-genchanges -b
dpkg-genchanges: binary-only upload - not including any source code
dpkg-buildpackage: binary only upload (no source included)
# ls
boa-0.94.13            boa_0.94.13-1.dsc          boa_0.94.13-1_sh3.deb
boa_0.94.13-1.diff.gz  boa_0.94.13-1_sh3.changes  boa_0.94.13.orig.tar.gz

待つことおよそ6分で、boa_0.94.13-1_sh3.deb パッケージができるはずです。

パッケージのインストール

.debパッケージのインストールは以下のようにします

# dpkg -i boa_0.94.13-1_sh3.deb
未選択パッケージ boa を選択しています。
(データベースを読み込んでいます... 現在 19065 個のファイルとディレクトリがイン ストールされています。)
(boa_0.94.13-1_sh3.deb から) boa を展開しています...
boa (0.94.13-1) を設定しています ...
Starting HTTP server: Boa.

Boaのインストールからデーモンの実行開始までが自動的に処理されます。

パッケージのアンインストール

アンインストールも簡単です

# apt-get remove boa
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
boa
0 packages upgraded, 0 newly installed, 1 to remove and 1 not upgraded.
Need to get 0B of archives. After unpacking 232kB will be freed.
Do you want to continue? [Y/n]
(データベースを読み込んでいます... 現在 19084 個のファイルとディレクトリがインストール
されています。)
boa を削除しています...
Stopping HTTP server: Boa.
dpkg - 警告: boa の削除中、ディレクトリ`/var/www'が空でないため削除できませんでした。
dpkg - 警告: boa の削除中、ディレクトリ`/var/log/boa'が空でないため削除できませんでした。
dpkg - 警告: boa の削除中、ディレクトリ`/etc/boa'が空でないため削除できませんでした。

/var/www と /etc/boa は自動的には削除されませんでしたので、必要があれば手動で削除します。

最新のパッケージに更新

せっかくインストールしたパッケージも時とともに古くなっていきます。でも大丈夫。(笑)
Debianではパッケージの更新(upgrade)も楽です。

supercat:~/build# apt-get upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
16 packages upgraded, 0 newly installed, 0 to remove and 0  not upgraded.
Need to get 4466kB of archives. After unpacking 2413kB will be used.
Do you want to continue? [Y/n]

この例では16個のファイルが最新版に更新できる。と報告されています。

Last-modified: 2006-01-19 (木) 16:36:53 (4964d)