○ imap/mcryptのインストール

・phpのIMAP関数とMcrypt暗号化関数で使用します
・imap-2007fをソースからインストールします
・libmcrypt-2.5.8のrpmを作成し、インストールします
・make はメンテナンスマシンで行っています

・新規インストールした openssl を使います
・ソースの取得、削除は省略します
・エディタ、ファイラーの操作は省略します
・ソースを展開したら説明文を読みましょう
・Enterキーを省略します

・ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
・設定ファイルで "#" で始まる行はコメントとして解釈されます

○関連サイト

:imap-2007f.tar.gz (http://www.washington.edu/imap/)
:libmcrypt-2.5.8.tar.gz  (http://mcrypt.sourceforge.net/)

○参照ファイル

パッケージの追加
最初の設定 (Xen)
opensslのインストール

○インストール環境

:OS CentOS 5.6
:selinux disabled or permissive
:インストール先 
:作業 /usr/src
:言語 LANG=en_US.UTF-8
:ユーザー rootで実行

・メンテナンスの場合は一般ユーザから行います



○imap-2007f

○ソースの展開・インストール

・EXTRACFLAGSオプション、該当しない場合は指定しない
・sslはデフォルトでは/usr/local/sslに設定されています

# cd /usr/src
[root@jupiter:/usr/src]
# tar zxvf imap-2007f.tar.gz
# chown -R root:root imap-2007f
# cd imap-2007f
[root@jupiter:/usr/src/imap-2007f]

# vi src/osdep/unix/Makefile

・Makefileの修正 (下記参照)

# make lnp EXTRACFLAGS="-O2 -march=pentium3" IP=6

・sharedライブラリを作ります

# cd c-client
[root@jupiter:/usr/src/imap-2007f/c-client]
# gcc -shared -o c-client.so *.o

・ファイルをコピーします

# cp c-client.a /usr/local/lib
# cp c-client.so /usr/local/lib
# cp c-client.h env.h env_unix.h fs.h ftl.h imap4r1.h \
linkage.h mail.h misc.h nl.h nntp.h osdep.h rfc822.h \
smtp.h tcp.h utf8.h utf8aux.h /usr/local/include

・シンボリックリンクを作ります

# cd /usr/local/lib
[root@jupiter:/usr/local/lib]
# ln -s c-client.a libc-client.a
# ln -s c-client.so libc-client.so
# cd /usr/src
[root@jupiter:/usr/src]
# tar jcvf imap-2007f-110728.tar.bz2 imap-2007f/

:imap-2007f/src/osdep/unix/Makefile

SSLDIR=/etc/pki/tls
SSLCERTS=$(SSLDIR)/certs
SSLKEYS=$(SSLDIR)/private
SSLINCLUDE=/usr/include/openssl
SSLLIB=/usr/lib

○selinuxヘの対応 (selinuxが有効の場合)

・新規インストールファイルのselinuxラベルを修正

# cd ~
[root@jupiter:~]
# restorecon -Rv /usr/local



○libmcrypt-2.5.8

○ソースの展開・インストール

# cd /usr/src
[root@jupiter:/usr/src]
# mkdir libmcrypt
# tar zxvf libmcrypt-2.5.8.tar.gz
# cp libmcrypt-2.5.8.tar.gz redhat/SOURCES
# cp libmcrypt-2.5.8/libmcrypt.spec redhat/SPECS
# cd redhat/SPECS
[root@jupiter:/usr/src/redhat/SPECS]

# vi libmcrypt.spec

・specファイルの修正 (下記参照)

# LANG=C rpmbuild -ba --clean --rmsource libmcrypt.spec
# mv libmcrypt.spec /usr/src/libmcrypt
# cd /usr/src/redhat/RPMS/i386
[root@jupiter:/usr/src/redhat/RPMS/i386]

・作成されたパッケージ
 libmcrypt-2.5.8-5.C56.i386.rpm
 libmcrypt-devel-2.5.8-5.C56.i386.rpm

# rm *debuginfo*
# mv *.rpm /usr/src/libmcrypt
# cd ../../SRPMS
[root@jupiter:/usr/src/redhat/SRPMS]

・作成されたパッケージ
 libmcrypt-2.5.8-5.C56.src.rpm

# mv *.rpm /usr/src/libmcrypt

・インストール

# cd /usr/src/libmcrypt
[root@jupiter:/usr/src/libmcrypt]
# rpm -Uvh libmcrypt-devel* libmcrypt-2.5.8-5.C56.i386.rpm

:libmcrypt.spec

・EXTRASファイルとコンフリクトするのでReleaseバージョンを上げておく

・省略

Release: 5.C56
License: LGPL

・省略

%build
./configure --prefix=%{prefix} --disable-posix-threads

・省略

%files
#%defattr(-, root, root, 0755)
#%{_libdir}/libmcrypt.so
%{_libdir}/libmcrypt.so*

・省略

%{_includedir}/mcrypt.h
%{_includedir}/mutils/mcrypt.h
%{prefix}/man/man3/mcrypt.*

・省略


○キャッシュ情報の更新と確認

# cd ~
[root@jupiter:~]
# ldconfig
# ldconfig -p | grep libmcrypt

○ Copyright(c) 528p.com All Rights Reserved.