Ubuntu用Stormインストールパッケージを作成しよう!(その1
こんにちは。
徐々に暖かくなってきていますが未だに部屋でマフラーまでしている今日この頃です。
いつまでこの寒さは続きますかねぇ・・・
1.StormをUbuntuに導入してみたい!
というのが今回の発端です。
ご存じの方もいらっしゃるかもしれませんが、
storm-installerは現状CentOS用のパッケージしか存在しておらず、Ubuntu用のパッケージが存在しない状態です。
なので、どうせなのでStorm用のパッケージを作成してしまおう・・・というわけですね。
2.そもそも、何故Ubuntuを使っているの?
と、そもそもその前に何故CentOSではなくてUbuntuを使用しているのか、という疑問がありますよね。
これについては完全なる思いつきに過ぎないのですが、
「LXCとjujuを使って仮想マシンを色々試してみよう!」と最近思いました。
CentOSでも6.2以降であればLXCが入るのはわかっているのですが、
どうせなら昔からサポートに取り組んできたUbuntu上で試してみたい・・・というわけです。
3.試した環境
というわけで、実際にパッケージを作成する環境構築から入るわけですが、
実際に使った環境をまず残しておきます。
今回のパッケージ作成は下記の環境を持つマシンで実行しています。
4.パッケージビルド環境構築
まずはパッケージビルド環境構築です。
個々のプロダクトのパッケージ作成時に必要になったらその都度必要なものを追加していきます。
■ビルド環境構築
// 開発ツール/ビルドツール関連インストール kimutansk@tartaros:~$ sudo apt-get install dh-make fakeroot dpkg-dev kimutansk@tartaros:~$ sudo apt-get install devscripts kimutansk@tartaros:~$ sudo apt-get install autotools-dev // ディレクトリ作成 kimutansk@tartaros:~$ mkdir debwork // パッケージビルド用のワークディレクトリ kimutansk@tartaros:~$ mkdir debbuild // パッケージビルド用のファイルを配置するディレクトリ
apt-getコマンドがあるのでインストール自体は一瞬ですね。
5.ZeroMQパッケージの作成
環境構築が終わったので、手始めにZeroMQからパッケージを作成していきます。
■ZeroMQパッケージ作成準備
kimutansk@tartaros:~$ cd debwork // ソースダウンロード kimutansk@tartaros:~$ wget http://download.zeromq.org/zeromq-2.1.7.tar.gz // ファイルを展開し、ビルド用ディレクトリに配置 kimutansk@tartaros:~$ tar xzvpf zeromq-2.1.7.tar.gz kimutansk@tartaros:~$ mv zeromq-2.1.7 ../debbuild/ kimutansk@tartaros:~$ cd ../debbuild/ kimutansk@tartaros:~$ mkdir zeromq-2.1.7_build kimutansk@tartaros:~$ mv zeromq-2.1.7 zeromq-2.1.7_build/ // dh_makeコマンドでdebian用のビルド定義生成 kimutansk@tartaros:~$ cd zeromq-2.1.7_build/zeromq-2.1.7 kimutansk@tartaros:~$ dh_make -e kimutansk.g@gmail.com -c lgpl -f ../../../debwork/zeromq-2.1.7.tar.gz Type of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch? [s/i/m/l/k/n] s Maintainer name : kimutansk Email-Address : kimutansk.g@gmail.com Date : Mon, 11 Feb 2013 23:04:56 +0900 Package Name : zeromq Version : 2.1.7 License : lgpl3 Type of Package : Single Hit <enter> to confirm:
Maintainer nameが私になってしまいますが、とりあえずは気にしない方向で。
これまでのコマンドを実行すると、「zeromq-2.1.7」ディレクトリ配下に
「debian」ディレクトリが作成され、debian系のビルド定義が生成されます。
では、続きを。
■ZeroMQパッケージ作成試行
// debパッケージ作成コマンド実行、失敗・・・ kimutansk@tartaros:~$ debuild -us -uc (中略) configure: exit 1 make: *** [build] エラー 25 dpkg-buildpackage: error: debian/rules build gave error exit status 2 debuild: fatal error at line 1357: dpkg-buildpackage -rfakeroot -D -us -uc failed
失敗しています。かつ、エラーのメッセージを見ても何が何やらさっぱりです。
ただ、「configure: exit 1」というところから
パッケージ化を行おうとしなくても普通にconfigureコマンドでこけることは推測できます。
なので、パッケージ化ではなく、普通にビルドを行ってみます。
■ZeroMQをビルド・・・失敗
// 通常ビルド実施 kimutansk@tartaros:~$ cd kimutansk@tartaros:~$ cd debwork kimutansk@tartaros:~$ tar xzvpf zeromq-2.1.7.tar.gz kimutansk@tartaros:~$ cd zeromq-2.1.7 kimutansk@tartaros:~$ ./configure (中略) checking for sem_init in -lrt... yes checking for uuid_generate in -luuid... no configure: error: cannot link with -luuid, install uuid-dev.
configureコマンドを実行した結果、「uuid-dev」が存在しないため失敗していることがわかりました。
そのため、「uuid-dev」をインストールして再度試してみます。
■ZeroMQをビルド
// 「uuid-dev」をインストールし、再ビルド kimutansk@tartaros:~$ sudo apt-get install uuid-dev kimutansk@tartaros:~$ ./configure (中略) config.status: creating src/platform.hpp config.status: executing depfiles commands config.status: executing libtool commands
特にエラーメッセージなく終わることを確認しました。
では、再度パッケージ作成に戻ります。
一度debuildコマンドを実行するとconfig.logが作成されてソースが変更されたとして扱われてしまうため、
再度ファイルを展開しなおした上で実行してください。
■ZeroMQパッケージ作成試行
// debパッケージ作成コマンド実行 kimutansk@tartaros:~$ debuild -us -uc (中略) W: zeromq: bad-homepage <insert the upstream URL, if relevant> E: zeromq: non-empty-dependency_libs-in-la-file usr/lib/libzmq.la W: zeromq: non-dev-pkg-with-shlib-symlink usr/lib/libzmq.so.1.0.0 usr/lib/libzmq.so Finished running lintian. // 生成ファイル確認 kimutansk@tartaros:~$ cd ../ kimutansk@tartaros:~$ ls zeromq-2.1.7 zeromq_2.1.7-1_amd64.changes zeromq_2.1.7-1.debian.tar.gz zeromq_2.1.7-1_amd64.deb zeromq_2.1.7-1.dsc zeromq_2.1.7.orig.tar.gz zeromq_2.1.7-1_amd64.build // 生成されたパッケージファイルの中身確認 kimutansk@tartaros:~$ less zeromq_2.1.7-1_amd64.deb (中略) *** Contents: (中略) -rw-r--r-- root/root 952 2013-02-11 23:05 ./usr/lib/libzmq.la drwxr-xr-x root/root 0 2013-02-11 23:05 ./usr/lib/pkgconfig/ -rw-r--r-- root/root 195 2013-02-11 23:05 ./usr/lib/pkgconfig/libzmq.pc -rw-r--r-- root/root 644176 2013-02-11 23:05 ./usr/lib/libzmq.a -rw-r--r-- root/root 199592 2013-02-11 23:05 ./usr/lib/libzmq.so.1.0.0 lrwxrwxrwx root/root 0 2013-02-11 23:05 ./usr/lib/libzmq.so -> libzmq.so.1.0.0 lrwxrwxrwx root/root 0 2013-02-11 23:05 ./usr/lib/libzmq.so.1 -> libzmq.so.1.0.0
これでようやくZeroMQ用のパッケージファイル「zeromq_2.1.7-1_amd64.deb」を作成することができました。
残るはjzmqとstorm、storm-serviceですが、これはまた次回に書きますね。
それでは。