centos5.x 에서 dovecot 사용시 에러 부분
[root@idccc ~]# yum -y install dovecot
강제로 mysql을 삭제
[root@idccc ~]# rpm -e mysql –nodeps
위처럼 강제로 삭제하고 dovecot을 재시작하면 아래처럼 에러가 발생이 된다
[root@idccc ~]# /etc/rc.d/init.d/dovecot restart
Dovecot Imap 를 정지 중: [실패]
Dovecot Imap (을)를 시작 중: [ OK ]
Dovecot Imap 를 정지 중: [실패]
Dovecot Imap (을)를 시작 중: [ OK ]
확인 결과 mysql 버전이 5.x 이면 상관이 없는데 4.x에서 위처럼 에러가 발생이 된다..
즉 라이브러리 이 부분을 참고하는데 문제가 있다는 거다
그러면 dovecot 어떤 라이브러리를 참고 하는지 확인해 보자
[root@idccc ~]# ldd /usr/libexec/dovecot/dovecot-auth
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x0000003e28e00000)
libpam.so.0 => /lib64/libpam.so.0 (0x0000003338400000)
libgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2 (0x0000003e88000000)
libkrb5.so.3 => /usr/lib64/libkrb5.so.3 (0x0000003e87400000)
libk5crypto.so.3 => /usr/lib64/libk5crypto.so.3 (0x0000003e87800000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x0000003e2ba00000)
libldap-2.3.so.0 => /usr/lib64/libldap-2.3.so.0 (0x0000003e88800000)
libpq.so.4 => /usr/lib64/libpq.so.4 (0x0000003337400000)
libmysqlclient.so.15 => not found
libz.so.1 => /usr/lib64/libz.so.1 (0x0000003e27e00000)
libm.so.6 => /lib64/libm.so.6 (0x0000003e26e00000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003e26600000)
libc.so.6 => /lib64/libc.so.6 (0x0000003e26200000)
liblber-2.3.so.0 => /usr/lib64/liblber-2.3.so.0 (0x0000003338000000)
libaudit.so.0 => /lib64/libaudit.so.0 (0x0000003337c00000)
libkrb5support.so.0 => /usr/lib64/libkrb5support.so.0 (0x0000003e87c00000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x0000003e2b600000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x0000003e2b200000)
libsasl2.so.2 => /usr/lib64/libsasl2.so.2 (0x0000003e27a00000)
libssl.so.6 => /lib64/libssl.so.6 (0x0000003e88400000)
libcrypto.so.6 => /lib64/libcrypto.so.6 (0x0000003e87000000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x0000003e28600000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003e26a00000)
/lib64/ld-linux-x86-64.so.2 (0x0000003e25e00000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x0000003e27200000)
libsepol.so.1 => /lib64/libsepol.so.1 (0x0000003e27600000)
[root@idccc ~]#
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x0000003e28e00000)
libpam.so.0 => /lib64/libpam.so.0 (0x0000003338400000)
libgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2 (0x0000003e88000000)
libkrb5.so.3 => /usr/lib64/libkrb5.so.3 (0x0000003e87400000)
libk5crypto.so.3 => /usr/lib64/libk5crypto.so.3 (0x0000003e87800000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x0000003e2ba00000)
libldap-2.3.so.0 => /usr/lib64/libldap-2.3.so.0 (0x0000003e88800000)
libpq.so.4 => /usr/lib64/libpq.so.4 (0x0000003337400000)
libmysqlclient.so.15 => not found
libz.so.1 => /usr/lib64/libz.so.1 (0x0000003e27e00000)
libm.so.6 => /lib64/libm.so.6 (0x0000003e26e00000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003e26600000)
libc.so.6 => /lib64/libc.so.6 (0x0000003e26200000)
liblber-2.3.so.0 => /usr/lib64/liblber-2.3.so.0 (0x0000003338000000)
libaudit.so.0 => /lib64/libaudit.so.0 (0x0000003337c00000)
libkrb5support.so.0 => /usr/lib64/libkrb5support.so.0 (0x0000003e87c00000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x0000003e2b600000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x0000003e2b200000)
libsasl2.so.2 => /usr/lib64/libsasl2.so.2 (0x0000003e27a00000)
libssl.so.6 => /lib64/libssl.so.6 (0x0000003e88400000)
libcrypto.so.6 => /lib64/libcrypto.so.6 (0x0000003e87000000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x0000003e28600000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003e26a00000)
/lib64/ld-linux-x86-64.so.2 (0x0000003e25e00000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x0000003e27200000)
libsepol.so.1 => /lib64/libsepol.so.1 (0x0000003e27600000)
[root@idccc ~]#
ㅋㅋ 보니깐 mysql 부분인데 mysql 버전이 4.x 라서 라이브러리 인식을 못하는 문제 발생
간단하게 심벌릭 링크로 해결 (각 32bit이면 /usr/lib 64bit이면 /usr/lib64)
[root@idccc ~]# ln -s /usr/local/mysql/lib/mysql/libmysqlclient.so.12.0.0 /usr/lib64/libmysqlclient.so.15
이제 다시 시작해 보자
[root@idccc ~]# /etc/rc.d/init.d/dovecot restart
Dovecot Imap 를 정지 중: [ OK ]
Dovecot Imap (을)를 시작 중: [ OK ]
Dovecot Imap 를 정지 중: [ OK ]
Dovecot Imap (을)를 시작 중: [ OK ]
한동안 이것때문에 무슨 문제때문인지 시작이 안되나 고생했었는데 이렇게 쉽게 해결될것을
역시 엔지니어는 이런 고생길이 있어야 하나..