Zabbix 2.3.1 を 独自にパッケージングしてみた

Zabbix 2.1 が出てからほぼ1年になるのねぇ、と思いながら、次のメジャーバージョン 2.4 の開発版である 2.3.1 を deb パッケージにしてみた。

パッケージングの手順自体は

  1. Zabbix 2.3.1 のソースをダウンロード
  2. Debian に取り込まれている Zabbix 2.2.3 のソースパッケージをインストール
  3. ダウンロードしてきた 2.3.1 のソースを、deb パッケージ作成用に展開
  4. パッケージング実行

となるわけですが、今回は 4. のパッケージングのところで引っかかった。

何も考えずに、dpkg-buildpackage コマンドを実行すると、

nexus01:/usr/local/src/zabbix-2.3.1-gaia01# dpkg-buildpackage -us -b -rfakeroot
dpkg-buildpackage: warning: using a gain-root-command while being root
dpkg-buildpackage: source package zabbix
dpkg-buildpackage: source version 1:2.3.1-gaia01-1
dpkg-buildpackage: source distribution UNRELEASED
dpkg-buildpackage: source changed by root <root@nexus01.downtown.jp>
dpkg-buildpackage: host architecture amd64
 dpkg-source --before-build zabbix-2.3.1-gaia01
dpkg-source: info: using options from zabbix-2.3.1-gaia01/debian/source/options: --extend-diff-ignore=\.(bat|exe)$ --compression=xz
dpkg-checkbuilddeps: Unmet build dependencies: libgcrypt-dev
dpkg-buildpackage: warning: build dependencies/conflicts unsatisfied; aborting
dpkg-buildpackage: warning: (Use -d flag to override.)

と、libgcrypt-dev がない、というようなエラーメッセージが。
勿論、事前にビルトに必要となるパッケージのインストールは行っているわけですが…。

nexus01:/usr/local/src/zabbix-2.3.1-gaia01# apt-get build-dep zabbix
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージは「削除」されます:
  libgcrypt11-dev
以下のパッケージが新たにインストールされます:
  libgcrypt20-dev libssh2-1-dev
アップグレード: 0 個、新規インストール: 2 個、削除: 1 個、保留: 68 個。
716 kB 中 0 B のアーカイブを取得する必要があります。
この操作後に追加で 1,152 kB のディスク容量が消費されます。
続行しますか? [Y/n] y
バグレポートを取得しています... 完了
Found/Fixed 情報を解析しています... 完了
(データベースを読み込んでいます ... 現在 155973 個のファイルとディレクトリがインストールされています。)
Removing libgcrypt11-dev (1.5.3-4) ...
Processing triggers for man-db (2.6.7.1-1) ...
以前に未選択のパッケージ libgcrypt20-dev を選択しています。
(データベースを読み込んでいます ... 現在 155968 個のファイルとディレクトリがインストールされています。)
Preparing to unpack .../libgcrypt20-dev_1.6.1-2_amd64.deb ...
Unpacking libgcrypt20-dev (1.6.1-2) ...
以前に未選択のパッケージ libssh2-1-dev:amd64 を選択しています。
Preparing to unpack .../libssh2-1-dev_1.4.3-3_amd64.deb ...
Unpacking libssh2-1-dev:amd64 (1.4.3-3) ...
Processing triggers for man-db (2.6.7.1-1) ...
libgcrypt20-dev (1.6.1-2) を設定しています ...
libssh2-1-dev:amd64 (1.4.3-3) を設定しています ...

よく見返してみると、インストールされたのは libgcrypt20-dev というパッケージ。

grep を使って、パッケージング用に展開されたソースディレクトリ内をチェックしてみると

nexus01:/usr/local/src/zabbix-2.3.1-gaia01# grep -R libgcrypt-dev *
debian/control: ,libgcrypt-dev

debian/control で、依存するパッケージを指定している部分のパッケージ名が違っているためにビルドできないようなので、そのファイルの該当部分を次のように修正。改めて dpkg-buildpackage コマンドを実行したところ、deb パッケージの作成に成功した次第。

nexus01:/usr/local/src/zabbix-2.3.1-gaia01# grep libgcrypt debian/control
# ,libgcrypt-dev
 ,libgcrypt20-dev

一応↓のようにパッケージは出来ていますので、インストールして試すのみ、なんですがね。ちょっと手を付けている余裕がなかったり…。

nexus01:/usr/local/src# ls -l *2.3.1*.deb
-rw-r--r-- 1 root staff  321532  6月 12 01:25 zabbix-agent_2.3.1-gaia01-1_amd64.deb
-rw-r--r-- 1 root staff 2641482  6月 12 01:25 zabbix-frontend-php_2.3.1-gaia01-1_all.deb
-rw-r--r-- 1 root staff  185816  6月 12 01:25 zabbix-java-gateway_2.3.1-gaia01-1_all.deb
-rw-r--r-- 1 root staff  551620  6月 12 01:25 zabbix-proxy-mysql_2.3.1-gaia01-1_amd64.deb
-rw-r--r-- 1 root staff  554802  6月 12 01:25 zabbix-proxy-pgsql_2.3.1-gaia01-1_amd64.deb
-rw-r--r-- 1 root staff  536430  6月 12 01:25 zabbix-proxy-sqlite3_2.3.1-gaia01-1_amd64.deb
-rw-r--r-- 1 root staff 1724134  6月 12 01:25 zabbix-server-mysql_2.3.1-gaia01-1_amd64.deb
-rw-r--r-- 1 root staff 1726100  6月 12 01:25 zabbix-server-pgsql_2.3.1-gaia01-1_amd64.deb

2.3 / 2.4 系ではお仕事的に使えると嬉しい機能が追加されるようなので、とっとと試してみたいところなんですが…。
近いうちに時間見つけて、何とかしたいと思います。

トラックバック(1)

とりあえず 2.3.1 をビルドしてみたわけですが、 Zabbix 2.1 が出てからほぼ1年になるのねぇ、と思いながら、次のメジャーバージョン 2.4 ... 続きを読む

コメントする