harumaki.net

インフラ屋の覚書や、ラーメン食べある記とか。

CentOS MAIL

courier-imapのインストール(RPMパッケージの作成)

投稿日:2005年7月2日

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]

-CentOS, MAIL
-,

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

no image

Open Jtalkを入れてみたのでインストール・環境設定をメモ書き

会社の開発チームから、”音声合成ツールのOpen Jtalkを試したいので、開発サーバーに入れといてくださ~い”との依頼を受けたので、ひとまず動かせるところまでざざっと調べてイ …

no image

[メモ]7zip(linux版)

[pukiwiki] #contents たまたまlinux環境で使用する必要が出たので、インストール。 -公開サイト http://p7zip.sourceforge.net/ -ダウンロードページ …

no image

メールサーバー構築ログ[postfix+mysql+postfixadmin]

[pukiwiki] 約2年ぶりくらいにpostfix+mysql+postfixadminでメールサーバーをセットアップしたので 備忘録として。 割とスタンダードな内容なので、参考になるかわかりませ …

no image

mbox2maildir

[pukiwiki]   会社のテストサーバが不調になり、調査のために/var/spool/mailsvr/rootにたまったLogwatchを取り込もうとしたのだが、テストサーバにqpopperを入 …

no image

カーネル負荷テストツール(LTP)

[pukiwiki] *カーネル負荷テストツール(LTP) IBM、SGI、OSDLなどが共同で運営している[[Linux Test Project(ltp):http://ltp.sourcefor …