centOS 에서 dovecot POP3 사용하기

2010.05.12 07:46

조인상 조회 수:15224

원문 : http://www.ischo.net -- 조인상 // 시스템 엔지니어

Writer : http://www.ischo.net -- ischo // System Engineer in Replubic Of Korea

+++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

본문 : http://www.ischo.net -- 조인상 //시스템 엔지니어

+++++++++++++++++++++++++++++++++++++++++++++++++++++++


centOS를 설치하고 pop3를 사용하기 위해서

ntsysv 에서 설정하려던 중 pop3를 아무리 찾아도 없었다...


qpopper도 없고 pop3도 없었다

# rpm -qa | grep pop  도 안나오고...

해서 centos에서 쓸수 있는 pop3를 찾던 중

dovecot 이 페도라코어3 부터 나왔다는것을 알게되어 처음 사용해 보게 되었다.






ntsysv 에서 dovecot 을 사용가능하게 해주고

# service dovecot start 로 시작하고

# telnet localhost 110 

해도 접속이 안된다.


확인해보니 dovecot을 실행해도 계속 죽는 것이었다.

네이버에서 관련 문건을 찾아보니 다음과 같은 트러블슈팅 해결건이 있었다.


출처 : http://blog.empas.com/wwiww76/16152212
=====================================================

서버 환경 : 페도라 3

지난 금요일밤 피스넷 서버를 업그레이드 했는데 주말동안 아무 일이 없길래 정상적으로 작동하고 있는 줄 알았던 메일서비스가 안된다는 것을 어제저녁 전샘과 채팅하면서 알게 되었다. dovecot 은 pop3 와 imap 서비스를 지원해주는 서비스인데 계속 재시작해도 아래와 같이 나오기만 한다.


[root@ns init.d]# /etc/init.d/dovecot restart
Stopping Dovecot Imap: [ FAILED ]
Starting Dovecot Imap: [ OK ]

sendmail [SMTP 서비스] 은 정상적으로 작동하고 있는데 위 서비스가 죽어 있으니 그나마 피스넷 계정에서 살고 있던 사람들이 메일을 받지 못하고 있을 것이라 생각하니 걱정이 되기도 하였지만 그래도 피곤에 지쳐 그냥 쓰러져 자고 말았다.

아침에 일어나자마자 뉴스 그룹을 뒤져본 결과 아래 메시지에 대한 응답들이 죽 있는 것을 보았다. 아무리 뒤져봐도 별로 신통한 대답들이 없다. 아래 메시지들만 계속 나오고 더 이상 해결방책이 떠오르지 않는다. 그런데 아래와 같은 에러에 대한 문제해결에 대한 방법이 있을 것 같다고 확신이 섰던 것은


Mar 14 06:03:41 ns dovecot: Dovecot starting up
Mar 14 06:03:42 ns dovecot: Auth process died too early - shutting down
Mar 14 06:03:42 ns dovecot: child 20964 (auth) returned error 127
Mar 14 06:03:42 ns pop3-login: fd_send(-1) failed: Broken pipe


위 에러에 대한 하나의 답변이었다.


I'd guess this means the dovecot-auth binary is linked against a
different version of some library, eg. mysql. See what ldd says:

ldd /usr/lib/dovecot/dovecot-auth (or whereever dovecot-auth is) 지금 나 같은 경우는 페도라3 에서 dovecot 관련 파일이 위치되어 있는 곳은 /usr/libexec/dovecot/dovocot-auth 이다.


여기서 나의 추측이 발동하기 시작했다. dovecot 이 메시지 정보를 저장할때 특별히 imap 의 경우는 mysql과 관련이 있다는 것을 읽었던 기억이 되살아 났다.

난 보통 소스 기반으로 APM 을 설치하므로 아무래도 라이브러리 링크관련해서 발생하는 것 같다는 생각이 들어

#> up2date mysql-server
#> up2date mysql

로 업데이트 한 후 dovecot 을 다시 실행해 보았다.

[root@ns init.d]# /etc/init.d/dovecot restart
Stopping Dovecot Imap: [ OK ]
Starting Dovecot Imap: [ OK ]

후와 기분이 일단 상쾌해진다. 몇시간이고 헤메일 것 같은 서비스가 살아난다. 글구 미심쩍어 다시 한번 해보아도 역시 OK 메시지가 떨어진다. 결국 dovecot 서비스는 mysql 을 APM 소스 기반으로 설치했을 경우에 발생하는 문제이며 mysql 을 rpm 으로 설치해 주기만 하면 일단 문제가 해결되는 것을 알게 되었다.
=========================================================




그렇다 결론은 APM을 소스기반으로 설치하기 위해서

mysql 패키지를 rpm으로 제거햇을 경우에 관련 라이브러리가

사라졌기 때문이며 dovecot은 그 라이브러리를 찾으려고 백방 노력하기 때문이다.


이 문제를 해결하기 위해서 멀쩡히 잘 서비스하고 있는 소스기반 APM을 놔두고 굳이 mysql을 rpm으로 설치해줄 필요가 있을까 싶었다.


그래서 서버에서 직접 문제가 되는 라이브러리를 연결해 주기로 했다.


# ldd /usr/libexec/dovecot/dovocot-auth
libcrypt.so.1 => /lib/libcrypt.so.1 (0x0096e000)
        libcrypto.so.4 => /lib/libcrypto.so.4 (0x00426000)
        libpam.so.0 => /lib/libpam.so.0 (0x0016a000)
        libldap-2.2.so.7 => /usr/lib/libldap-2.2.so.7 (0x06309000)
        libpq.so.3 => /usr/lib/libpq.so.3 (0x00cbb000)
        libmysqlclient.so.14 => not found
        libdl.so.2 => /lib/libdl.so.2 (0x00ca3000)
        libc.so.6 => /lib/tls/libc.so.6 (0x00b52000)
        libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x00528000)
        libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x0039c000)
        libcom_err.so.2 => /lib/libcom_err.so.2 (0x00397000)
        libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x00403000)
        libresolv.so.2 => /lib/libresolv.so.2 (0x00de5000)
        libz.so.1 => /usr/lib/libz.so.1 (0x00ca9000)
        libaudit.so.0 => /lib/libaudit.so.0 (0x00194000)
        liblber-2.2.so.7 => /usr/lib/liblber-2.2.so.7 (0x0095f000)
        libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0x00949000)
        libssl.so.4 => /lib/libssl.so.4 (0x00555000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x0099e000)
        libpthread.so.0 => /lib/tls/libpthread.so.0 (0x00d9c000)
        /lib/ld-linux.so.2 (0x00b35000)

찾았다.  위에서 보면

        libmysqlclient.so.14 => not found

라고 분명히 찍혀있다.

이제 고 파일을 찾자.


rpm으로 깔던 소스로 깔던 똑같은 mysql이다.

/usr/local/mysql/lib 에서 쉽게 찾을수 있었다.



# cp /usr/local/mysql/lib/mysql/libmysqlclient.so.14 /usr/lib


으로 복사해주니

        libmysqlclient.so.14 => /usr/lib/libmysqlclient.so.14 (0x00111000)

라고 잘 찾아줬다.


이제 dovecot 을 실행해주면 무난하게 잘 된다.
번호 제목 글쓴이 날짜 조회 수
공지 [공지] 게시자료 열람자유. 불펌금지입니다. 조인상 2010.12.07 30726
44 파이프를 이용한 tar와 gzip 동시에 처리하기 ischo 2011.05.19 12063
43 리눅스에서 2TB 이상의 파티션 만들기 ischo 2011.04.11 12244
42 bonding 네트워크 설정 ischo 2011.03.30 15585
41 텍스트파일의 내용을 순차적으로 읽어들이는 스크립트 ischo 2011.03.29 17587
40 불특정 파일리스트 FTP 전송 스크립트 file ischo 2011.02.18 14155
39 시스템 관리자를 위한 50가지 비법 조인상 2011.01.04 12194
38 Linux Performance and Tuning Guidelines - IBM file ischo 2010.11.17 9779
37 HOW TO SELinux file ischo 2010.11.17 9335
36 CentOS에 zabbix 1.8.2 install secret 조인상 2010.07.27 2
35 case로 만드는 오라클 서비스 관리 ksh 스크립트 예제 ischo 2010.06.18 13477
34 리눅스환경에서 RedOwl 정지시키기 조인상 2010.05.27 14429
33 LVM 사용하여 추가한 디스크로 볼륨 늘리기 ischo 2010.05.19 35784
32 vsftpd 포트변경 방법 조인상 2010.05.12 14850
31 파일로 스왑추가 방법 조인상 2010.05.12 11084
30 ssh 자동로그아웃 설정방법 조인상 2010.05.12 41507
29 xinetd 모드로 proftpd 변경 조인상 2010.05.12 12348
28 [펌] 리눅스에서의 시리얼통신 조인상 2010.05.12 19965
27 tar 를 이용한 테잎 백업스크립트 예 조인상 2010.05.12 10968
26 랜카드 동작속도 확인/수정 방법 조인상 2010.05.12 29464
25 sendmail 25번포트 접속이 localhost에서만 허용될때 조인상 2010.05.12 16906
서버에 요청 중입니다. 잠시만 기다려 주십시오...