CentOS6 で Zabbix 3.0 を動かす (自力ビルド編)


# SRPM からビルドする

[CentOS6 で Zabbix 3.0 を動かす (力業編)](http://qiita.com/items/93880150f85738432a59)では、かなり強引な方法で実現していますが、この自力ビルド編の方法は、ビルドの手間はかかりますが、パッケージとして導入するため。管理しやすいでしょう。また、更新した curl は /usr/local に配置するなど、互換性に考慮した配置が取れます。

ビルドに使用した spec ファイルと、/usr/local へのインストールでカスタマイズしたファイルは [Gist](https://gist.github.com/komeda-shinji/40c4f3f5a25f24be9e41) に置いてあります。

  https://gist.github.com/komeda-shinji/40c4f3f5a25f24be9e41

# ビルド環境

rpmbuild コマンドが必要なため、パッケージをインストールします。

~~~
# yum install rpmdevtools yum-utils
~~~

ビルド用のユーザを作成します。

~~~
# useradd mockbuild

# useradd rpmbuilder
~~~

以降はこのビルド用のユーザ rpmbuilder で作業します。

~~~
# su - rpmbuilder
$ rpmdev-setuptree
~~~


# curl

## /usr/local にインストールする場合

### curl-local.spec

/usr/local にインストールされます。既存の libcurl をアップデートしたくないときに使います。

```curl-local.spec.patch
diff -u curl.spec curl-local.spec
--- curl.spec           2015-11-23 00:58:08.000000000 +0900
+++ curl-local.spec     2016-03-03 14:49:11.309742879 +0900
@@ -1,3 +1,11 @@
+
+%define _prefix /usr/local
+%define _exec_prefix %{_prefix}
+%define _datadir %{_prefix}/share
+%define _libdir         %{_exec_prefix}/lib64
+%define _mandir %{_datadir}/man
+%define dist .el6.local
+
 Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
 Name: curl
 Version: 7.29.0
@@ -283,8 +291,13 @@
 #

 %build
+CPPFLAGS='-I/usr/local/include'
+export CPPFLAGS
+LDFLAGS='-L/usr/local/lib64 -Wl,-rpath,/usr/local/lib64'
+export LDFLAGS
+
 [ -x /usr/kerberos/bin/krb5-config ] && KRB5_PREFIX="=/usr/kerberos"
-%configure --disable-static \
+%configure --prefix=/usr/local --disable-static \
     --enable-hidden-symbols \
     --enable-ipv6 \
     --enable-ldaps \
```

## 通常の配置

そのままバンドルされている spec ファイルを使ってビルドできます。
通常の CentOS6 用のパッケージを更新する形で導入することになります。

## crulのビルド

~~~
$ rpm -iv curl-7.29.0-25.el7.centos.src.rpm
~~~


~~~
$ rpmbuild -bb curl.spec
~~~

また、/usr/local にインストールする場合は

~~~
$ QA_RPATHS=$[ 0x0001|0x0002|0x0010 ] rpmbuild -bb curl-local.spec
~~~


パッケージが不足していると、どれが不足しているか警告が出て終了します。
ビルドに必要なため導入したパッケージは以下の通りです。

* groff-1.18.1.4-21.el6.x86_64
* pkgconfig-0.23-9.1.el6.x86_64
* openssh-clients-5.3p1-112.el6_7.x86_64
* zlib-devel-1.2.3-29.el6.x86_64
* stunnel-4.29-3.el6_6.1.x86_64
* valgrind-3.8.1-8.el6.x86_64
* krb5-devel-1.10.3-42.el6.x86_64
* libssh2-devel-1.4.2-1.el6_6.1.x86_64
* libidn-devel-1.18-2.el6.x86_64
* openssh-server-5.3p1-112.el6_7.x86_64
* nss-devel-3.19.1-8.el6_7.x86_64
* perl-Time-HiRes-1.9721-141.el6_7.1.x86_64
* openldap-devel-2.4.40-7.el6_7.x86_64


# zabbix

rpmbuild のバージョンが古いため、%doc マクロのバグ対策などがありますが、spec ファイルを少し修正すればビルドできました。

## /usr/local にインストールする場合

### zabbix-local.spec

Zabbix は /usr/local にインストールされます。
curl を /usr/local にインストールしてあれば、そちらを優先してリンクします。

zabbix.spec からのパッチです。

```zabbix-local.spec.patch
diff -u rpmbuild/SPECS/zabbix.spec zabbix-local.spec
--- rpmbuild/SPECS/zabbix.spec    2016-02-28 16:17:00.000000000 +0900
+++ zabbix-local.spec   2016-03-04 04:13:27.050719017 +0900
@@ -1,3 +1,11 @@
+%define _prefix /usr/local
+%define _exec_prefix %{_prefix}
+%define _datadir %{_prefix}/share
+%define _libdir         %{_exec_prefix}/lib64
+%define _mandir %{_datadir}/man
+%define _docdir %{_datadir}/doc
+%define dist .el6.local
+
 Name:          zabbix
 Version:       3.0.1
 Release:       1%{?alphatag:.%{alphatag}}%{?dist}
@@ -6,13 +14,13 @@
 License:       GPLv2+
 URL:           http://www.zabbix.com/
 Source0:       zabbix-%{version}%{?alphatag:%{alphatag}}.tar.gz
-Source1:       zabbix-web22.conf
-Source2:       zabbix-web24.conf
+Source1:       zabbix-web22.local.conf
+Source2:       zabbix-web24.local.conf
 Source3:       zabbix-logrotate.in
-Source4:       zabbix-java-gateway.init
-Source5:       zabbix-agent.init
-Source6:       zabbix-server.init
-Source7:       zabbix-proxy.init
+Source4:       zabbix-java-gateway.local.init
+Source5:       zabbix-agent.local.init
+Source6:       zabbix-server.local.init
+Source7:       zabbix-proxy.local.init
 Source10:      zabbix-agent.service
 Source11:      zabbix-server.service
 Source12:      zabbix-proxy.service
@@ -28,6 +36,9 @@
 %if 0%{?rhel} >=7
 %define build_server 1
 %endif
+%if 0%{?rhel} >=6
+%define build_server 1
+%endif

 BuildRequires: mysql-devel
 BuildRequires: postgresql-devel
@@ -236,8 +247,8 @@
 Requires:                      php-ldap
 Requires:                      dejavu-sans-fonts
 Requires:                      zabbix-web-database = %{version}-%{release}
-Requires(post):                %{_sbindir}/update-alternatives
-Requires(preun):       %{_sbindir}/update-alternatives
+Requires(post):                /usr/sbin/update-alternatives
+Requires(preun):       /usr/sbin/update-alternatives

 %description web
 Zabbix web frontend common package
@@ -270,8 +281,8 @@
 BuildArch:                     noarch
 Requires:                      vlgothic-p-fonts
 Requires:                      zabbix-web = %{version}-%{release}
-Requires(post):                %{_sbindir}/update-alternatives
-Requires(preun):       %{_sbindir}/update-alternatives
+Requires(post):                /usr/sbin/update-alternatives
+Requires(preun):       /usr/sbin/update-alternatives

 %description web-japanese
 Japanese font configuration for Zabbix web frontend
@@ -309,7 +320,13 @@

 %build

+CPPFLAGS='-I/usr/local/include'
+export CPPFLAGS
+LDFLAGS='-L/usr/local/lib64 -Wl,-rpath,/usr/local/lib64'
+export LDFLAGS
+
 build_flags="
+        --prefix=/usr/local
        --enable-dependency-tracking
        --sysconfdir=/etc/zabbix
        --libdir=%{_libdir}/zabbix
@@ -509,15 +526,15 @@

 %if 0%{?build_server}
 # copy sql files for servers
-docdir=$RPM_BUILD_ROOT%{_docdir}/zabbix-server-mysql-%{version}
-install -dm 755 $docdir
+docdir=zabbix-server-mysql-%{version}
+mkdir $docdir
 cat database/mysql/schema.sql > $docdir/create.sql
 cat database/mysql/images.sql >> $docdir/create.sql
 cat database/mysql/data.sql >> $docdir/create.sql
 gzip $docdir/create.sql

-docdir=$RPM_BUILD_ROOT%{_docdir}/zabbix-server-pgsql-%{version}
-install -dm 755 $docdir
+docdir=zabbix-server-pgsql-%{version}
+mkdir $docdir
 cat database/postgresql/schema.sql > $docdir/create.sql
 cat database/postgresql/images.sql >> $docdir/create.sql
 cat database/postgresql/data.sql >> $docdir/create.sql
@@ -525,23 +542,28 @@
 %endif

 # copy sql files for proxyes
-docdir=$RPM_BUILD_ROOT%{_docdir}/zabbix-proxy-mysql-%{version}
-install -dm 755 $docdir
+docdir=zabbix-proxy-mysql-%{version}
+mkdir $docdir
 cp database/mysql/schema.sql $docdir/schema.sql
 gzip $docdir/schema.sql

-docdir=$RPM_BUILD_ROOT%{_docdir}/zabbix-proxy-pgsql-%{version}
-install -dm 755 $docdir
+docdir=zabbix-proxy-pgsql-%{version}
+mkdir $docdir
 cp database/postgresql/schema.sql $docdir/schema.sql
 gzip $docdir/schema.sql

-docdir=$RPM_BUILD_ROOT%{_docdir}/zabbix-proxy-sqlite3-%{version}
-install -dm 755 $docdir
+docdir=zabbix-proxy-sqlite3-%{version}
+mkdir $docdir
 cp database/sqlite3/schema.sql $docdir/schema.sql
 gzip $docdir/schema.sql


 %clean
+rm -rf zabbix-server-mysql-%{version}
+rm -rf zabbix-server-pgsql-%{version}
+rm -rf zabbix-proxy-mysql-%{version}
+rm -rf zabbix-proxy-pgsql-%{version}
+rm -rf zabbix-proxy-sqlite3-%{version}
 rm -rf $RPM_BUILD_ROOT


@@ -877,6 +899,7 @@
 %files proxy-mysql
 %defattr(-,root,root,-)
 %doc AUTHORS ChangeLog COPYING NEWS README
+%doc zabbix-proxy-mysql-%{version}/*
 %attr(0640,root,zabbix) %config(noreplace) %{_sysconfdir}/zabbix/zabbix_proxy.conf
 %dir /usr/lib/zabbix/externalscripts
 %config(noreplace) %{_sysconfdir}/logrotate.d/zabbix-proxy
@@ -894,6 +917,7 @@
 %files proxy-pgsql
 %defattr(-,root,root,-)
 %doc AUTHORS ChangeLog COPYING NEWS README
+%doc zabbix-proxy-pgsql-%{version}/*
 %attr(0640,root,zabbix) %config(noreplace) %{_sysconfdir}/zabbix/zabbix_proxy.conf
 %dir /usr/lib/zabbix/externalscripts
 %config(noreplace) %{_sysconfdir}/logrotate.d/zabbix-proxy
@@ -911,6 +935,7 @@
 %files proxy-sqlite3
 %defattr(-,root,root,-)
 %doc AUTHORS ChangeLog COPYING NEWS README
+%doc zabbix-proxy-sqlite3-%{version}/*
 %attr(0640,root,zabbix) %config(noreplace) %{_sysconfdir}/zabbix/zabbix_proxy.conf
 %dir /usr/lib/zabbix/externalscripts
 %config(noreplace) %{_sysconfdir}/logrotate.d/zabbix-proxy
@@ -946,6 +971,7 @@
 %files server-mysql
 %defattr(-,root,root,-)
 %doc AUTHORS ChangeLog COPYING NEWS README
+%doc zabbix-server-mysql-%{version}/*
 %attr(0640,root,zabbix) %config(noreplace) %{_sysconfdir}/zabbix/zabbix_server.conf
 %dir /usr/lib/zabbix/alertscripts
 %dir /usr/lib/zabbix/externalscripts
@@ -964,6 +990,7 @@
 %files server-pgsql
 %defattr(-,root,root,-)
 %doc AUTHORS ChangeLog COPYING NEWS README
+%doc zabbix-server-pgsql-%{version}/*
 %attr(0640,root,zabbix) %config(noreplace) %{_sysconfdir}/zabbix/zabbix_server.conf
 %dir /usr/lib/zabbix/alertscripts
 %dir /usr/lib/zabbix/externalscripts
```

### rpmbuild/SOURCES/zabbix-agent.local.init

rpmbuild/SOURCES/zabbix-agent.init をもとに作成します。

```zabbix-agent.local.init.patch
diff -u rpmbuild/SOURCES/zabbix-agent.init rpmbuild/SOURCES/zabbix-agent.local.init
--- rpmbuild/SOURCES/zabbix-agent.init  2016-02-28 16:05:33.000000000 +0900
+++ rpmbuild/SOURCES/zabbix-agent.local.init    2016-03-02 23:34:29.328769962 +0900
@@ -21,8 +21,8 @@
 # Source function library.
 . /etc/rc.d/init.d/functions

-if [ -x /usr/sbin/zabbix_agentd ]; then
-    exec=/usr/sbin/zabbix_agentd
+if [ -x /usr/local/sbin/zabbix_agentd ]; then
+    exec=/usr/local/sbin/zabbix_agentd
 else
     exit 5
 fi
```

### rpmbuild/SOURCES/zabbix-java-gateway.local.init

rpmbuild/SOURCES/zabbix-java-gateway.init をもとに作成します。

```zabbix-java-gateway.local.init.patch
diff -u rpmbuild/SOURCES/zabbix-java-gateway.init rpmbuild/SOURCES/zabbix-java-gateway.local.init
--- rpmbuild/SOURCES/zabbix-java-gateway.init   2016-02-28 16:05:33.000000000 +0900
+++ rpmbuild/SOURCES/zabbix-java-gateway.local.init     2016-03-02 23:36:36.657770893 +0900
@@ -31,7 +31,7 @@
 [ ${NETWORKING} = "no" ] && exit 0

 RETVAL=0
-EXECDIR=/usr/sbin/zabbix_java
+EXECDIR=/usr/local/sbin/zabbix_java

 case "$1" in
     start)
```

### rpmbuild/SOURCES/zabbix-proxy.local.init

rpmbuild/SOURCES/zabbix-proxy.init をもとに作成します。

```zabbix-proxy.local.init.patch
diff -u rpmbuild/SOURCES/zabbix-proxy.init rpmbuild/SOURCES/zabbix-proxy.local.init
--- rpmbuild/SOURCES/zabbix-proxy.init  2016-02-28 16:05:33.000000000 +0900
+++ rpmbuild/SOURCES/zabbix-proxy.local.init    2016-03-02 23:34:44.984771340 +0900
@@ -18,8 +18,8 @@
 # Source function library.
 . /etc/rc.d/init.d/functions

-if [ -x /usr/sbin/zabbix_proxy ]; then
-    exec=/usr/sbin/zabbix_proxy
+if [ -x /usr/local/sbin/zabbix_proxy ]; then
+    exec=/usr/local/sbin/zabbix_proxy
 else
     exit 5
 fi
```

### rpmbuild/SOURCES/zabbix-server.local.init

rpmbuild/SOURCES/zabbix-server.init をもとに作成します。

```zabbix-server.local.init.patch
diff -u rpmbuild/SOURCES/zabbix-server.init rpmbuild/SOURCES/zabbix-server.local.init
--- rpmbuild/SOURCES/zabbix-server.init 2016-02-28 16:05:33.000000000 +0900
+++ rpmbuild/SOURCES/zabbix-server.local.init   2016-03-02 23:34:59.050770122 +0900
@@ -18,8 +18,8 @@
 # Source function library.
 . /etc/rc.d/init.d/functions

-if [ -x /usr/sbin/zabbix_server ]; then
-    exec=/usr/sbin/zabbix_server
+if [ -x /usr/local/sbin/zabbix_server ]; then
+    exec=/usr/local/sbin/zabbix_server
 else
     exit 5
 fi
```

### rpmbuild/SOURCES/zabbix-web22.local.conf

rpmbuild/SOURCES/zabbix-web22.conf をもとに作成します。

```zabbix-web22.local.conf.patch
diff -u rpmbuild/SOURCES/zabbix-web22.conf rpmbuild/SOURCES/zabbix-web22.local.conf
--- rpmbuild/SOURCES/zabbix-web22.conf  2016-02-28 16:05:33.000000000 +0900
+++ rpmbuild/SOURCES/zabbix-web22.local.conf    2016-03-03 02:52:17.044765009 +0900
@@ -2,9 +2,9 @@
 # Zabbix monitoring system php web frontend
 #

-Alias /zabbix /usr/share/zabbix
+Alias /zabbix /usr/local/share/zabbix

-<Directory "/usr/share/zabbix">
+<Directory "/usr/local/share/zabbix">
     Options FollowSymLinks
     AllowOverride None
     Order allow,deny
@@ -21,7 +21,7 @@
     </IfModule>
 </Directory>

-<Directory "/usr/share/zabbix/conf">
+<Directory "/usr/local/share/zabbix/conf">
     Order deny,allow
     Deny from all
     <files *.php>
@@ -30,7 +30,7 @@
     </files>
 </Directory>

-<Directory "/usr/share/zabbix/app">
+<Directory "/usr/local/share/zabbix/app">
     Order deny,allow
     Deny from all
     <files *.php>
@@ -39,7 +39,7 @@
     </files>
 </Directory>

-<Directory "/usr/share/zabbix/include">
+<Directory "/usr/local/share/zabbix/include">
     Order deny,allow
     Deny from all
     <files *.php>
@@ -48,7 +48,7 @@
     </files>
 </Directory>

-<Directory "/usr/share/zabbix/local">
+<Directory "/usr/local/share/zabbix/local">
     Order deny,allow
     Deny from all
     <files *.php>
```

### rpmbuild/SOURCES/zabbix-web24.local.conf

rpmbuild/SOURCES/zabbix-web24.conf をもとに作成します。

```zabbix-web24.local.conf.patch
diff -u rpmbuild/SOURCES/zabbix-web24.conf rpmbuild/SOURCES/zabbix-web24.local.conf
--- rpmbuild/SOURCES/zabbix-web24.conf  2016-02-28 16:05:33.000000000 +0900
+++ rpmbuild/SOURCES/zabbix-web24.local.conf    2016-03-03 02:52:28.315760825 +0900
@@ -2,9 +2,9 @@
 # Zabbix monitoring system php web frontend
 #

-Alias /zabbix /usr/share/zabbix
+Alias /zabbix /usr/local/share/zabbix

-<Directory "/usr/share/zabbix">
+<Directory "/usr/local/share/zabbix">
     Options FollowSymLinks
     AllowOverride None
     Require all granted
@@ -20,18 +20,18 @@
     </IfModule>
 </Directory>

-<Directory "/usr/share/zabbix/conf">
+<Directory "/usr/local/share/zabbix/conf">
     Require all denied
 </Directory>

-<Directory "/usr/share/zabbix/app">
+<Directory "/usr/local/share/zabbix/app">
     Require all denied
 </Directory>

-<Directory "/usr/share/zabbix/include">
+<Directory "/usr/local/share/zabbix/include">
     Require all denied
 </Directory>

-<Directory "/usr/share/zabbix/local">
+<Directory "/usr/local/share/zabbix/local">
     Require all denied
 </Directory>
```


## 通常の配置

配布されているパッケージと同様の配置です。


### zabbix.spec.patch

curl を /usr/local にインストールしてあれば、そちらを優先してリンクします。

```zabbix.spec.patch
diff -u rpmbuild/SPECS/zabbix.spec zabbix.spec
--- rpmbuild/SPECS/zabbix.spec    2016-02-28 16:17:00.000000000 +0900
+++ zabbix.spec 2016-03-04 04:08:41.974718669 +0900
@@ -28,6 +28,9 @@
 %if 0%{?rhel} >=7
 %define build_server 1
 %endif
+%if 0%{?rhel} >=6
+%define build_server 1
+%endif

 BuildRequires: mysql-devel
 BuildRequires: postgresql-devel
@@ -309,6 +312,11 @@

 %build

+CPPFLAGS='-I/usr/local/include'
+export CPPFLAGS
+LDFLAGS='-L/usr/local/lib64 -Wl,-rpath,/usr/local/lib64'
+export LDFLAGS
+
 build_flags="
        --enable-dependency-tracking
        --sysconfdir=/etc/zabbix
@@ -509,15 +517,15 @@

 %if 0%{?build_server}
 # copy sql files for servers
-docdir=$RPM_BUILD_ROOT%{_docdir}/zabbix-server-mysql-%{version}
-install -dm 755 $docdir
+docdir=zabbix-server-mysql-%{version}
+mkdir $docdir
 cat database/mysql/schema.sql > $docdir/create.sql
 cat database/mysql/images.sql >> $docdir/create.sql
 cat database/mysql/data.sql >> $docdir/create.sql
 gzip $docdir/create.sql

-docdir=$RPM_BUILD_ROOT%{_docdir}/zabbix-server-pgsql-%{version}
-install -dm 755 $docdir
+docdir=zabbix-server-pgsql-%{version}
+mkdir $docdir
 cat database/postgresql/schema.sql > $docdir/create.sql
 cat database/postgresql/images.sql >> $docdir/create.sql
 cat database/postgresql/data.sql >> $docdir/create.sql
@@ -525,23 +533,28 @@
 %endif

 # copy sql files for proxyes
-docdir=$RPM_BUILD_ROOT%{_docdir}/zabbix-proxy-mysql-%{version}
-install -dm 755 $docdir
+docdir=zabbix-proxy-mysql-%{version}
+mkdir $docdir
 cp database/mysql/schema.sql $docdir/schema.sql
 gzip $docdir/schema.sql

-docdir=$RPM_BUILD_ROOT%{_docdir}/zabbix-proxy-pgsql-%{version}
-install -dm 755 $docdir
+docdir=zabbix-proxy-pgsql-%{version}
+mkdir $docdir
 cp database/postgresql/schema.sql $docdir/schema.sql
 gzip $docdir/schema.sql

-docdir=$RPM_BUILD_ROOT%{_docdir}/zabbix-proxy-sqlite3-%{version}
-install -dm 755 $docdir
+docdir=zabbix-proxy-sqlite3-%{version}
+mkdir $docdir
 cp database/sqlite3/schema.sql $docdir/schema.sql
 gzip $docdir/schema.sql


 %clean
+rm -rf zabbix-server-mysql-%{version}
+rm -rf zabbix-server-pgsql-%{version}
+rm -rf zabbix-proxy-mysql-%{version}
+rm -rf zabbix-proxy-pgsql-%{version}
+rm -rf zabbix-proxy-sqlite3-%{version}
 rm -rf $RPM_BUILD_ROOT


@@ -877,6 +890,7 @@
 %files proxy-mysql
 %defattr(-,root,root,-)
 %doc AUTHORS ChangeLog COPYING NEWS README
+%doc zabbix-proxy-mysql-%{version}/*
 %attr(0640,root,zabbix) %config(noreplace) %{_sysconfdir}/zabbix/zabbix_proxy.conf
 %dir /usr/lib/zabbix/externalscripts
 %config(noreplace) %{_sysconfdir}/logrotate.d/zabbix-proxy
@@ -894,6 +908,7 @@
 %files proxy-pgsql
 %defattr(-,root,root,-)
 %doc AUTHORS ChangeLog COPYING NEWS README
+%doc zabbix-proxy-pgsql-%{version}/*
 %attr(0640,root,zabbix) %config(noreplace) %{_sysconfdir}/zabbix/zabbix_proxy.conf
 %dir /usr/lib/zabbix/externalscripts
 %config(noreplace) %{_sysconfdir}/logrotate.d/zabbix-proxy
@@ -911,6 +926,7 @@
 %files proxy-sqlite3
 %defattr(-,root,root,-)
 %doc AUTHORS ChangeLog COPYING NEWS README
+%doc zabbix-proxy-sqlite3-%{version}/*
 %attr(0640,root,zabbix) %config(noreplace) %{_sysconfdir}/zabbix/zabbix_proxy.conf
 %dir /usr/lib/zabbix/externalscripts
 %config(noreplace) %{_sysconfdir}/logrotate.d/zabbix-proxy
@@ -946,6 +962,7 @@
 %files server-mysql
 %defattr(-,root,root,-)
 %doc AUTHORS ChangeLog COPYING NEWS README
+%doc zabbix-server-mysql-%{version}/*
 %attr(0640,root,zabbix) %config(noreplace) %{_sysconfdir}/zabbix/zabbix_server.conf
 %dir /usr/lib/zabbix/alertscripts
 %dir /usr/lib/zabbix/externalscripts
@@ -964,6 +981,7 @@
 %files server-pgsql
 %defattr(-,root,root,-)
 %doc AUTHORS ChangeLog COPYING NEWS README
+%doc zabbix-server-pgsql-%{version}/*
 %attr(0640,root,zabbix) %config(noreplace) %{_sysconfdir}/zabbix/zabbix_server.conf
 %dir /usr/lib/zabbix/alertscripts
 %dir /usr/lib/zabbix/externalscripts
```


## zabbixのビルド

/usr/local 版の libcurl をインストールします。

~~~
# rpm -ivh rpmbuild/RPMS/x86_64/libcurl-7.29.0-25.el6.local.x86_64.rpm
~~~

curl を更新してしまう場合はこちらです。

~~~
# rpm -Uvh rpmbuild/RPMS/x86_64/curl-7.29.0-25.el6.x86_64.rpm rpmbuild/RPMS/x86_64/libcurl-7.29.0-25.el6.x86_64.rpm rpmbuild/RPMS/x86_64/libcurl-devel-7.29.0-25.el6.x86_64.rpm
~~~


~~~
$ rpm -iv zabbix-3.0.1-1.el7.src.rpm
~~~

rpmbuild でビルドします。
/usr/local にインストールした libcurl.so にリンクするときは、`QA_RPATHS=$[ 0x0001|0x0002|0x0010 ]` を指定しないと、rpath のチェックでエラーになってしまいます。

~~~
$ QA_RPATHS=$[ 0x0001|0x0002|0x0010 ] rpmbuild -bb zabbix.spec
~~~

または

~~~
$ QA_RPATHS=$[ 0x0001|0x0002|0x0010 ] rpmbuild -bb zabbix-local.spec
~~~

パッケージが不足していると、どれが不足しているか警告が出て終了します。
ビルドに必要なため導入したパッケージは以下の通りです。

* openssl-devel-1.0.1e-42.el6_7.4.x86_64
* mysql-devel-5.5.48-1.el6.remi.x86_64
* net-snmp-devel-5.5-54.el6_7.1.x86_64
* iksemel-devel-1.4-2.el6.x86_64
* libxml2-devel-2.7.6-20.el6_7.1.x86_64
* libcurl-devel-7.29.0-25.el6.x86_64
* libssh2-devel-1.4.2-1.el6_6.1.x86_64
* postgresql-devel-8.4.20-4.el6_7.x86_64
* unixODBC-devel-2.2.14-14.el6.x86_64
* openldap-devel-2.4.40-7.el6_7.x86_64
* gnutls-devel-2.8.5-19.el6_7.x86_64
* OpenIPMI-devel-2.0.16-14.el6.x86_64
* sqlite-devel-3.6.20-1.el6_7.2.x86_64

できあがったパッケージを使えば、2.2 や 2.4 と同様にインストールすることができます。