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

第12回 Debianパッケージのセルフビルド

海老原祐太郎
2003/6/16

NFS-ROOT 第11回 nfsルートで大規模UNIX環境 等で大容量のストレージが用意できると
Apache Webサーバ等の大規模なソフトウェアのセルフビルド環境を構築できます。
今回のターゲット機はCAT68701 / CAT709 どちらでも同じ手順になります。

備 準

  /etc/apt/sources.list ファイルに 以下のapt ラインを準備し、aptが使えるようにしておきます

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

セルフパッケージビルド環境の構築

apt が使えるようになったらセルフ開発環境の構築ができるようになりますので
順次パッケージをインストールしていきます。

一覧表のダウンロード
# apt-get update
最新パッケージへの更新
# apt-get upgrade
基本的な開発者用のパッケージをダウンロード&インストール
# apt-get install gcc binutils libc6-dev dpkg-dev debhelper telnetd bsd-ftpd autoconf automake m4

パッケージのセルフビルド

手始めに小型のWebサーバ 『boa』 パッケージのダウンロード&ビルドをしてみます。

# mkdir build
# cd build
# apt-get source boa   <--- ソースのダウンロード及び展開を行います
# cd boa-xxx_xx
# dpkg-buildpackage -us -uc   ← ビルドを開始します
[略]
dpkg-checkbuilddeps: Unmet build dependencies: texinfo bison flex texi2html tetex-bin  ← パッケージが不足エラー
dpkg-buildpackage: Build dependencies/conflicts unsatisfied; aborting.
dpkg-buildpackage: (Use -d flag to override.)

パッケージのビルドを試みると、いくつかのパッケージが不足している旨のエラーが出ました。
不足分のパッケージをインストールします。

# apt-get install texinfo bison flex 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:
 bison flex libfreetype6 libjpeg62 libkpathsea3 libpng2 libtiff3g libxaw7 tetex-base tetex-bin texi2html
 texinfo xfree86-common xlibs
0 packages upgraded, 14 newly installed, 0 to remove and 22  not upgraded.
Need to get 19.7MB of archives. After unpacking 63.3MB will be used.
Do you want to continue? [Y/n]     ← Y と答える。あるいは単にエンターを押す

必要なパッケージをインストールした後、再度ビルドコマンドを実行します。

# dpkg-buildpackage -us -uc
[略]
dh_builddeb
dpkg-deb: building package `boa' in `../boa_0.94.13-5_sh3.deb'.
 dpkg-genchanges
dpkg-genchanges: not including original source code in upload
dpkg-buildpackage: binary and diff upload (original source NOT included)

ひとつ上のディレクトリに 無事 boa_0.94.13-5_sh3.deb がビルドされましたので

# dpkg -i boa_0.94.13-5_sh3.deb

でインストールできます。

より複雑なパッケージをビルドしてみる

Apache-ssl をビルドしてみます。以下はすべてCAT709/CAT68701での操作です。

# apt-get source apache-ssl
# cd apache-ssl-1.3.27+1.48/
# dpkg-buildpackage -us -uc
dpkg-checkbuilddeps: Unmet build dependencies: sharutils libdb2-dev (>= 2.7.7-2.1) libexpat1-dev libssl-dev
dpkg-buildpackage: Build dependencies/conflicts unsatisfied; aborting.

パッケージが不足していますのでインストールします。

# apt-get install sharutils libdb2-dev libexpat1-dev libssl-dev

再度パッケージのビルドを実行します。今度は time コマンドにより実行時間を測定してみます。

# time dpkg-buildpackage -us -uc
[略]
dpkg-deb: building package `apache-ssl' in `../apache-ssl_1.3.27+1.48-0.1_sh3.deb'.

w00 w00

 dpkg-genchanges
dpkg-genchanges: including full source code in upload
dpkg-buildpackage: full upload (original source is included)

real    39m37.440s
user    33m8.370s
sys     4m8.470s
#

待つこと40分で 無事 apache-ssl_1.3.27+1.48-0.1_sh3.deb パッケージができました。

Last-modified: 2006-01-19 (木) 16:39:10 (6670d)