Courier Mail Serverをインストールする
Courier Mail Server というソフトを最近知りました。
これから色々触って行こうと思っている所です。
最初のステップということで、インストール方法をまとめておこうと思います。
環境及びインストール方針
OS環境はCentOS5.5です。
ここから以下のtarアーカイブをダウンロードします。
今回はRPMパッケージを作成してインストールします。
- courier-0.65.3.tar.bz2
- courier-authlib-0.63.0.tar.bz2
courier-authlibのビルド
「courier-authlib」からビルドしていきます。
ビルドしようとすると、依存関係で足りないものが指摘されます。
これをまずはインストールしていきます。
# rpmbuild -ta courier-authlib-0.63.0.tar.bz2 error: Failed build dependencies: libtool is needed by courier-authlib-0.63.0-1.i386 openldap-devel is needed by courier-authlib-0.63.0-1.i386 mysql-devel is needed by courier-authlib-0.63.0-1.i386 zlib-devel is needed by courier-authlib-0.63.0-1.i386 postgresql-devel is needed by courier-authlib-0.63.0-1.i386 gdbm-devel is needed by courier-authlib-0.63.0-1.i386 pam-devel is needed by courier-authlib-0.63.0-1.i386 expect is needed by courier-authlib-0.63.0-1.i386 gcc-c++ is needed by courier-authlib-0.63.0-1.i386 redhat-rpm-config is needed by courier-authlib-0.63.0-1.i386 /usr/include/ltdl.h is needed by courier-authlib-0.63.0-1.i386 # yum install libtool openldap-devel mysql-devel zlib-devel postgresql-devel \ gdbm-devel pam-devel expect gcc-c++ redhat-rpm-config libtool-ltdl-devel
再びビルドします。
# rpmbuild -ta courier-authlib-0.63.0.tar.bz2
特に問題が発生しなければ、パッケージが作成されています。
# pwd /usr/src/redhat/RPMS/i386 # ls courier-authlib-0.63.0-1.i386.rpm courier-authlib-debuginfo-0.63.0-1.i386.rpm courier-authlib-devel-0.63.0-1.i386.rpm courier-authlib-ldap-0.63.0-1.i386.rpm courier-authlib-mysql-0.63.0-1.i386.rpm courier-authlib-pgsql-0.63.0-1.i386.rpm courier-authlib-pipe-0.63.0-1.i386.rpm courier-authlib-userdb-0.63.0-1.i386.rpm
「courier-authlib-devel」パッケージが「courier」パッケージのビルドに
依存しているため、インストールしておきます。
# rpm -ivh courier-authlib-0.63.0-1.i386.rpm courier-authlib-devel-0.63.0-1.i386.rpm
courierのビルド
「courier-authlib」同様、ビルドしようとすると、
依存関係で足りないものが指摘されます。
これをまずはインストールしていきます。
# rpmbuild -ta courier-0.65.3.tar.bz2 error: Failed build dependencies: courier-authlib-devel >= 0.55 is needed by courier-0.65.3-1.i386 expect is needed by courier-0.65.3-1.i386 gdbm-devel is needed by courier-0.65.3-1.i386 pam-devel is needed by courier-0.65.3-1.i386 libidn-devel is needed by courier-0.65.3-1.i386 /usr/include/fam.h is needed by courier-0.65.3-1.i386 gnutls-devel is needed by courier-0.65.3-1.i386 /usr/bin/certtool is needed by courier-0.65.3-1.i386 ghostscript is needed by courier-0.65.3-1.i386 mgetty-sendfax is needed by courier-0.65.3-1.i386 netpbm-progs is needed by courier-0.65.3-1.i386 pcre-devel is needed by courier-0.65.3-1.i386 # yum install libidn-devel gamin-devel openssl-perl ghostscript mgetty-sendfax netpbm-progs pcre-devel
そして、再度ビルドを行います。
# rpmbuild -ta courier-0.65.3.tar.bz2
すると、rootで作業していた事を怒られてしまいました。
configure: WARNING: === Do not compile Courier as root. Compile configure: WARNING: === Courier as a non-root user then su to configure: WARNING: === root before running make install. You must now configure: WARNING: === remove this entire directory and then extract the configure: WARNING: === source code from the tarball as a non-root user configure: WARNING: === and rerun the configure script. If you have read configure: WARNING: === the INSTALL file you should have known this. So configure: WARNING: === you better read INSTALL again configure: error: aborted. error: Bad exit status from /var/tmp/rpm-tmp.32637 (%prep) RPM build errors: Bad exit status from /var/tmp/rpm-tmp.32637 (%prep)
仕方ないので、一般ユーザーでビルドするための環境を作ります。
$ mkdir -p ~/rpm/{BUILD,RPMS,SOURCES,SPECS,SRPMS} vi ~/.rpmmacros %_topdir /home/myuser/rpm %_builddir %{_topdir}/BUILD %_rpmdir %{_topdir}/RPMS %_sourcedir %{_topdir}/SOURCES %_specdir %{_topdir}/SPECS %_srcrpmdir %{_topdir}/SRPMS $ cp -p /usr/local/src/courier-0.65.3.tar.bz2 /home/myuser/
再びビルドします。
$ rpmbuild -ta courier-0.65.3.tar.bz2
他
「courier」パッケージをビルドしていた際、こんなエラーで異常終了になりました。
どうやらビルド時にメモリが足りてなかったようです。
ビルドするときは1GB程度のメモリが必要と思われます。
gcc: Internal error: Killed (program cc1) Please submit a full bug report. See <URL:http://bugzilla.redhat.com/bugzilla> for instructions. make[4]: *** [esmtpclient.o] Error 1 make[3]: *** [all] Error 2 make[2]: *** [all-recursive] Error 1 make[1]: *** [all] Error 2 make: *** [all-recursive] Error 1 error: Bad exit status from /var/tmp/rpm-tmp.71485 (%build) RPM build errors: Bad exit status from /var/tmp/rpm-tmp.71485 (%build)
実際に動かして見た時の話はまた改めて書いていきたいと思います。
今日はこんなところで。