Apache Traffic Server v3.0.0 をdebパッケージにしてみる

ここしばらく、内々では使い続けていたApache Traffic Serverですが、v3.0.0として、正式リリースされたようです。

14 June 2011 --FOREST HILL, MD--The Apache Software Foundation (ASF), the all-volunteer developers, stewards, and incubators of nearly 150 Open Source projects and initiatives, today announced Apache Traffic Server v3.0.0.

[From The Apache Software Foundation Announces Apache Traffic Server v3.0.0 : The Apache Software Foundation Blog]

Debianのパッケージとしては、まだ2.1.8-unstableだし、パッケージになるまでもう少しかかりそうなので、ソースを拾ってきて独自にdebパッケージを作ってみた。

まずは、作業したいサーバの/usr/local/srcあたりに、v3.0.0のソースをダウンロード。

# cd /usr/local/src/
# wget http://ftp.riken.jp/net/apache//trafficserver/trafficserver-3.0.0.tar.bz2
--2011-06-17 22:18:59--  http://ftp.riken.jp/net/apache//trafficserver/trafficserver-3.0.0.tar.bz2
ftp.riken.jp をDNSに問いあわせています... 134.160.38.1
ftp.riken.jp|134.160.38.1|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 2418416 (2.3M) [application/x-bzip2]
`trafficserver-3.0.0.tar.bz2' に保存中
100%[======================================================================================>] 2,418,416    337K/s 時間 7.0s
2011-06-17 22:19:06 (335 KB/s) - `trafficserver-3.0.0.tar.bz2' へ保存完了 [2418416/2418416]

v3.0.0のdebパッケージを作成するために、手本とする2.1.9-unstableのソースをapt-getコマンドで入手。

# apt-get source trafficserver
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
注意: 'trafficserver' パッケージは以下の場所の 'Svn' バージョン制御システムで保守されています:
svn://scm.alioth.debian.org/svn/collab-maint/ext-maint/trafficserver/trunk
2,433 kB のソースアーカイブを取得する必要があります。
取得:1 http://cdn.debian.or.jp/debian/ sid/main trafficserver 2.1.9-unstable-1 (dsc) [1,521 B]
取得:2 http://cdn.debian.or.jp/debian/ sid/main trafficserver 2.1.9-unstable-1 (tar) [2,416 kB]
取得:3 http://cdn.debian.or.jp/debian/ sid/main trafficserver 2.1.9-unstable-1 (diff) [15.3 kB]
2,433 kB を 8秒 で取得しました (283 kB/s)
gpgv: keyblock resource `/root/.gnupg/trustedkeys.gpg': ファイルのオープン・エラー
gpgv: 2011年06月03日 01時26分13秒 JSTにDSA鍵ID 70096AD1で施された署名
gpgv: 署名を検査できません: 公開鍵が見つかりません
dpkg-source: warning: failed to verify signature on ./trafficserver_2.1.9-unstable-1.dsc
dpkg-source: info: extracting trafficserver in trafficserver-2.1.9-unstable
dpkg-source: info: unpacking trafficserver_2.1.9-unstable.orig.tar.bz2
dpkg-source: info: unpacking trafficserver_2.1.9-unstable-1.debian.tar.gz

ディレクトリを移動してなければ、/usr/local/srcディレクトリに

# pwd
/usr/local/src
# ls -l
合計 4756
drwxr-xr-x 17 root root     4096 2011-06-17 22:25 trafficserver-2.1.9-unstable
-rw-r--r--  1 root staff 2418416 2011-06-14 07:02 trafficserver-3.0.0.tar.bz2
-rw-r--r--  1 root staff   15268 2011-06-03 20:39 trafficserver_2.1.9-unstable-1.debian.tar.gz
-rw-r--r--  1 root staff    1521 2011-06-03 20:39 trafficserver_2.1.9-unstable-1.dsc
-rw-r--r--  1 root staff 2415853 2011-06-03 20:39 trafficserver_2.1.9-unstable.orig.tar.bz2

のように、配置されているはず。

続いて、trafficserverをビルドするのに必要になるパッケージがないかチェックしつつ、不足しているパッケージをインストール。
#環境によって要求されるパッケージの数や種類は違うので、ここで出てくるのはあくまでも参考ということで。

# apt-get -u build-dep trafficserver
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが新たにインストールされます:
  autoconf automake autotools-dev debhelper html2text libcap-dev libexpat1-dev libpcre3-dev libpcrecpp0 libsqlite3-dev
  libssl-dev libtool m4 tcl tcl-dev tcl8.5 tcl8.5-dev zlib1g-dev
アップグレード: 0 個、新規インストール: 18 個、削除: 0 個、保留: 25 個。
8,704 kB のアーカイブを取得する必要があります。
この操作後に追加で 27.0 MB のディスク容量が消費されます。
続行しますか [Y/n]? y
取得:1 http://cdn.debian.or.jp/debian/ sid/main m4 amd64 1.4.16-1 [260 kB]
〜以下略〜

ここきたら、2.1.9-unstableのソースを使って、3.0.0の素のソースからdebパッケージ化するためのソースを生成するために、uupdateコマンドを実行。ただ、uupdateコマンド自体がインストールされていない可能性もあるので、その場合は、uupdateコマンドを含むdevscriptsパッケージをインストールしてから。
#ここでも、依存関係にあるパッケージが結構な数、インストールされるはずなので、操作時のログとかは省略。

# cd trafficserver-2.1.9-unstable/
# uupdate ../trafficserver-3.0.0.tar.bz2 3.0.0-nora
New Release will be 3.0.0-nora-1.
Symlinking to pristine source from trafficserver_3.0.0-nora.orig.tar.bz2...
-- Untarring the new sourcecode archive ../trafficserver-3.0.0.tar.bz2
Unpacking the debian/ directory from version 2.1.9-unstable-1 worked fine.
Remember: Your current directory is the OLD sourcearchive!
Do a "cd ../trafficserver-3.0.0-nora" to see the new package

ここではわざと"-nora"と付けているのだけど、これは後から正式なdebパッケージが出てきた時との違いを出すための識別子と考えてください。
あとは、/usr/local/srcディレクトリにtrafficserver-3.0.0-noraというディレクトリが出来ていたら、そこに移動してdpkg-buildpackageコマンドを使ってパッケージを作成。

# ls -ld ../trafficserver-3.0.0*
drwxr-xr-x 16  500   500    4096 2011-06-17 22:41 ../trafficserver-3.0.0-nora
drwxr-xr-x 15  500   500    4096 2011-06-10 05:42 ../trafficserver-3.0.0-nora.orig
-rw-r--r--  1 root staff 2418416 2011-06-14 07:02 ../trafficserver-3.0.0.tar.bz2
# cd ../trafficserver-3.0.0-nora
# dpkg-buildpackage -us -uc -b -rfakeroot
dpkg-buildpackage: warning: using a gain-root-command while being root
dpkg-buildpackage: export CFLAGS from dpkg-buildflags (origin: vendor): -g -O2
dpkg-buildpackage: export CPPFLAGS from dpkg-buildflags (origin: vendor):
dpkg-buildpackage: export CXXFLAGS from dpkg-buildflags (origin: vendor): -g -O2
dpkg-buildpackage: export FFLAGS from dpkg-buildflags (origin: vendor): -g -O2
dpkg-buildpackage: export LDFLAGS from dpkg-buildflags (origin: vendor):
〜長いので、以下略~
dpkg-source: info: using options from trafficserver-3.0.0-nora/debian/source/options: --extend-diff-ignore=Makefile\.in|Makefile|build/aux/(config\.(guess|sub)|ltmain\.sh)|aclocal\.m4|build/.*?\.m4|config\.nice|configure|app-template/records\.config
dpkg-buildpackage: binary only upload (no source included)
# 

ここまできて、/usr/local/srcディレクトリに

# ls -l /usr/local/src/*.deb
-rw-r--r-- 1 root staff  376922 2011-06-17 22:55 /usr/local/src/trafficserver-dev_3.0.0-nora-1_amd64.deb
-rw-r--r-- 1 root staff   24538 2011-06-17 22:55 /usr/local/src/trafficserver-plugin-conf-remap_3.0.0-nora-1_amd64.deb
-rw-r--r-- 1 root staff 3861054 2011-06-17 22:55 /usr/local/src/trafficserver_3.0.0-nora-1_amd64.deb

と、3つパッケージあったら、出来上がり。出来上がったパッケージは、"dpkg -i /usr/local/src/trafficserver*3.0.0*.deb"という感じで、インストールすればOKです。
2.1.8-unstableが動いていた環境であれば、おそらく設定そのままで動くはず・・・。

debパッケージがなかなか最新にならないものがあったら、これまでの手順を応用すれば独自にdebパッケージを作ることも出来るので、色々と応用が効くかもしれません。

【参考リンク】

トラックバック(1)

何気なく、TL 眺めてたら、 First alpha release of Zabbix 2.2 with long list of improvemen... 続きを読む

コメントする