Last Updated on 2022年3月13日 by かんりにん
[pukiwiki]
*▼courier-imapのインストール(RPMパッケージの作成) ※CentOS4
POP/IMAPサーバ用にインストールするcourier-imapだが
バージョン4からauthdeamonがcourier-authlibというパッケージに独立したので
一緒にインストールし、デーモンを同時実行する必要がある。
その分セキュアになったと思われるので、いいかな?と思いつつ。
”【参照サイト】”お世話になっています。
IMAP4 インストール/設定(Courier-IMAP)
http://www.dragoncity.ne.jp/construction/mailserve2.html
**■courier-authlibのパッケージ作成とインストール [#a82b68c4]
courier-imap4をインストールする際、まずcourier-authlib-develを
インストールする必要がある。
これはcourier-authlibに含まれるが、RPMにすると
ひとつのパッケージとして生成されるので必要なものだけインストールできて便利。
というわけでRPMパッケージを作成してからインストール。
***1)ダウンロードとRPMパッケージ作成。 [#cfeb9ba4]
ソースパッケージをダウンロードしたら、RPMの作業ディレクトリへ移動し
そのままrpmbuildしてOK。
※ていうかwgetするときに/usr/src/redhat/SOURCESで落としたほうが早いw
[root@example src]# pwd
/usr/local/src
[root@example src]# wget http://jaist.dl.sourceforge.net/sourceforge/courier/courier-authlib-0.56.tar.bz2
[root@example src]# mv courier-authlib-0.56.tar.bz2 /usr/src/redhat/SOURCES
[root@example src]# cd /usr/src/redhat/SOURCES
[root@example SOURCES]# rpmbuild -ta courier-authlib-0.56.tar.bz2
完了したら、パッケージを確認。
[root@example SOURCES]# ls -al ../SRPMS/RPMS/i386/
合計 400
drwxr-xr-x 2 root root 4096 6 30 13:58 .
drwxr-xr-x 8 root root 4096 6 11 16:19 ..
-rw-r–r– 1 root root 195639 6 30 13:58 courier-authlib-0.56-1.i386.rpm
-rw-r–r– 1 root root 31547 6 30 13:58 courier-authlib-devel-0.56-1.i386.rpm
-rw-r–r– 1 root root 28808 6 30 13:58 courier-authlib-ldap-0.56-1.i386.rpm
-rw-r–r– 1 root root 27528 6 30 13:58 courier-authlib-mysql-0.56-1.i386.rpm
-rw-r–r– 1 root root 22856 6 30 13:58 courier-authlib-pgsql-0.56-1.i386.rpm
-rw-r–r– 1 root root 13297 6 30 13:58 courier-authlib-pipe-0.56-1.i386.rpm
-rw-r–r– 1 root root 49506 6 30 13:58 courier-authlib-userdb-0.56-1.i386.rpm
[root@example SOURCES]# ls -al /root/ ../SRPMS/
合計 1960
drwxr-xr-x 2 root root 4096 6 30 13:58 .
drwxr-xr-x 7 root root 4096 6 11 16:19 ..
-rw-r–r– 1 root root 1985663 6 30 13:58 courier-authlib-0.56-1.src.rpm
***2)パッケージのインストール [#k3780a0d]
上記のうち、courier-imapのインストールに必要な
courier-authlib-devel-0.56-1とcourier-authlib-0.56-1をインストール。
UNIXアカウントで認証するので、他のパッケージは不要。
LDAPやMySQL認証のパッケージなどはゆくゆく必要になったら都度インストール。
[root@example i386]# rpm -ivh courier-authlib-0.56-1.i386.rpm
[root@example i386]# rpm -ivh courier-authlib-devel-0.56-1.i386.rpm
**■courier-imapのパッケージ作成とインストール [#kd940358]
courier-imapのほうはrootでのコンパイル禁止なので
一般ユーザでリビルド、コンパイルしてインストールします。
***1)ダウンロードと展開 [#hf1015a8]
[user@example ~]$ cd /home/example/
[user@example ~]$ wget http://jaist.dl.sourceforge.net/sourceforge/ \
courier/courier-imap-4.0.3.tar.bz2
[user@example ~]$ tar -jxf courier-imap-4.0.2.20050403-1.tar.bz2 -> ファイルの解凍
***2)specファイル修正 [#ib938cc9]
[user@example ~]$ cd courier-imap-4.0.2.20050403-1
[user@example courier-imap-4.0.2.20050403-1]$ vi courier-imap.spec
追記箇所は以下のとおり。
-文字コードにiso-2022-jpを追加
define xflags –enable-unicode=iso-8859-1,utf-8
↓
define xflags –enable-unicode=iso-2022-jp,iso-8859-1,utf-8
//▼configure時のオプションを追加。
//
//./configure –with-authpwd \
//–without-authmysql –without-authldap –without-authcram \rpmbuild -ba courier-imap.spec
//–without-authuserdb –without-authpgsql –without-ipv6 \
//–enable-woekarounds-for-imap-client-bugs \
//
//ソースコンパイル時と同じオプション。
//上記は、UNIXアカウントでの認証を行うよう、
//他の認証を削除してコンパイルするよう指定。
***3)rpmパッケージを作成 [#s10696b6]
[user@example courier-imap-4.0.2.20050403-1]$ cd ~
[user@example ~]$ mkdir -p $HOME/rpm/{SOURCES,SPECS,BUILD,SRPMS,RPMS/{i386}}
[user@example ~]$ echo “%_topdir $HOME/rpm” >> $HOME/.rpmmacros
[user@example ~]$ cd courier-imap-4.0.2.20050403
[user@example courier-imap-4.0.2.20050403-1]$ cp courier-imap.spec ../rpm/SPECS
[user@example courier-imap-4.0.2.20050403-1]$ cp ../courier-imap-4.0.2.20050403-1.tar.bz2
../rpm/SOURCES
[user@example courier-imap-4.0.2.20050403-1]$ rpmbuild -ba courier-imap.spec
これで実行開始。しばらくかかるので放置。
で、完了後、../RPMS/i386/を確認するとパッケージが出来ている。
[user@example SPECS]$ ls -al ../RPMS/i386/
合計 424
drwxr-xr-x 2 user user 4096 7月 1 12:57 .
drwxrwxr-x 4 user user 4096 7月 1 12:57 ..
-rw-rw-r– 1 user user 419627 7月 1 12:57 courier-imap-4.0.2.20050403-1.i386.rpm
ついでにsrcもできている。
[user@example SPECS]$ ls -al ../SRPMS/
合計 2980
drwxrwxr-x 2 user user 4096 7月 1 12:57 .
drwxrwxr-x 7 user user 4096 7月 1 12:47 ..
-rw-rw-r– 1 user user 3035523 7月 1 12:57 courier-imap-4.0.2.20050403-1.src.rpm
***4)インストール。 [#e1a7e060]
$ su
他のimapサーバがインストールされているとコンフリクトするので
先に確認しておく。
入っていた場合は削除する。
[root@example SPECS]# rpm -qa | grep imap
cyrus-imapd-murder-2.2.10-1.RHEL4.1
cyrus-imapd-nntp-2.2.10-1.RHEL4.1
cyrus-imapd-devel-2.2.10-1.RHEL4.1
php-imap-4.3.9-3.2
cyrus-imapd-2.2.10-1.RHEL4.1
cyrus-imapd-utils-2.2.10-1.RHEL4.1
[root@example SPECS]#
上記の場合はcyrus-imapdが入っているが、削除せずに
インストールしようとすると、やはりコンフリクトが発生。
(php-imapはそのまま入れたままでOK)
[root@example SPECS]# cd ../RPMS/i386/
[root@example i386]# rpm -ivh courier-imap-4.0.2.20050403-1.i386.rpm
Preparing… ########################################### [100%]
file /etc/pam.d/imap from install of courier-imap-4.0.2.20050403-1 conflicts with
file from package cyrus-imapd-2.2.10-1.RHEL4.1
[root@example i386]# rpm -e cyrus-imapd-2.2.10-1.RHEL4.1
[root@example i386]# rpm -e cyrus-imapd-2.2.10-1.RHEL4.1 cyrus-imapd-murder-2.2.10-1.RHEL4.1 \
cyrus-imapd-nntp-2.2.10-1.RHEL4.1 cyrus-imapd-devel-2.2.10-1.RHEL4.1
[root@example i386]# rpm -ivh courier-imap-4.0.2.20050403-1.i386.rpm
Preparing… ########################################### [100%]
1:courier-imap ########################################### [100%]
[root@example i386]#
パッケージ作成時に展開したディレクトリなどは削除してOK。
インストールされたパッケージのディレクトリ構成は、ソースからインストール
した場合とほぼ同じ。
***5)起動 [#t930e344]
-courier-authlibの起動
上記のとおり、courier-authlibが独立したパッケージとして
インストールされ、saslのようにプロセスも独立するようになった。
まずこのデーモンを起動する。
※これが無いとPOP/IMAPを起動しても認証できない!
[root@example etc]# /etc/init.d/courier-authlib start
Starting Courier authentication services: authdaemond
[root@example etc]#
-~courier-imapの起動
courier-imapの起動方法はパッケージでインストールした場合2種類あり、
ソースインストール同様/usr/lib/courier-imap/libexec/以下の起動スクリプトからの起動と、
新たに/etc/init.d/に作成される起動スクリプトから実行する方法と2種類選べる。
但し/etc/init.d/courier-imapをそのまま実行すると
デフォルトではpop3、pop3s、imap、imaps全てが起動するため(!!)、
スクリプトを編集して起動するデーモンを選ぶか、または
/usr/lib/courier-imap/libexec/から選んで起動する方法を
選んだほうがよいかも。
※OSブート時は当然/etc/init.d/courier-imapが実行される。
[root@example etc]# /etc/init.d/courier-authlib start-imap start
Starting Courier-IMAP server: imap generating-SSL-certificate…
imap-ssl pop3 generating-SSL-certificate… pop3-ssl
[root@example etc]#
続けてローカル内で実行状況を確認。
-pop3
[root@example i386]# telnet localhost 110
Trying 127.0.0.1…
Connected to localhost.localdomain (127.0.0.1).
Escape character is ‘^]’.
+OK Hello there.
user user ←ユーザー名入力
+OK Password required.
pass ******** ←パスワード入力
+OK logged in.
quit ←確認できたらログアウト
+OK Bye-bye.
Connection closed by foreign host.
[root@example i386]#
-imap
[root@example i386]# telnet localhost 143
Trying 127.0.0.1…
Connected to localhost.localdomain (127.0.0.1).
Escape character is ‘^]’.
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT
THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP ready.
Copyright 1998-2005 Double Precision, Inc. See COPYING for distribution information.
a login user ********** ←ユーザー名とパスワードを入力
a OK LOGIN Ok.
a logout ←問題なければログアウト
* BYE Courier-IMAP server shutting down
a OK LOGOUT completed
Connection closed by foreign host.
[root@example i386]#
***tip:ユーザーのホームディレクトリにMaildirが生成されない場合 [#fcb70e7a]
基本的にMaildirはpostfix側で指定するので、main.cfで指定すれば
自動的にホームディレクトリに作成される(はず・・・)のだが、Maildirが作成されない場合は
/usr/lib/courier-imap/bin/にあるmaildirmakeコマンドを使用するとOK。
Maildirを作成したいユーザのホームディレクトリへ移動し、コマンドを実行するだけ。
prompt$ /usr/lib/courier-imap/bin/maildirmake Maildir
これでMaildirが作成される。
さらにuseradd時、ユーザーのホームディレクトリにデフォルトで作成したい場合は
/etc/skelでmaildirmakeを実行してディレクトリを作成しておくとOK
(要するに/etc/skelに作るだけ)
[/pukiwiki]