Solaris

Sendmail에서 makemap 생성시 Berkeley DB 문제

알 수 없는 사용자 2008. 2. 29.
728x90
우선 저는 linux 이고 sendmail-8.12.10 과 버클리DB4.1.24를 사용한 경우입니다.

makemap: Need to recompile with -DNEWDB for hash support
이 메시지는 버클리DB를 sendmail에서 탑재하지 못했기 때문이라고 합니다. (저도 허접이지만)

설치되어 있는 분은 상관없구요.  설치되지 않았으면 먼저 버클리DB를 설치하셔야 합니다.

설치되어 있는지 확인하는 방법 :
보통은 /usr/local/BerkeleyDB.4.1입니다. 만약 /usr/local에 BerkeleyDB.4.1이 없다면 설치되지 않은 것이죠. 서버마다 경로가 다를 수 있으니 상황에 맞게 확인하세요. 그리고 디렉토리명도 버전에 따라 다르니 BerkeleyDB.x.x  알아서 확인하시길...

(중요) 저는 sendmail8.12.10으로 깔면서 위와 같은 에러가 떠서 버클리DB 4.1.25를 다운받아 설치했는데, sendmail8.12.10(이전버전의 경우는 모름)은 버클리DB 4.1.24버전이나 그 이전버전을 사용해야 한다는 군요.  www.sendmail.org에서 그러는데 최신버전인 4.1.25버전은 안된다네요..(ㅜㅜ)
그래서 다시 4.1.24를 다운받아 설치 했습니다.


컴파일시 sendmail data base (smdb : 아마도 약자겠죠?)를 디폴트로 하는데,
버클리DB가 디폴트인지(?)....
컴파일때, /usr/lib/libdb.a 와 /usr/include/db.h 파일을 필요로 하더군요.
버클리 DB를 설치하신분은 아래와 같이 두 파일을 복사/심볼릭 링크를 해주고
  /usr/local/Sendmail-8.12.10 디렉토리에서 (경로는 각자 서버상황에 맞게 생각하시고)
  sh Build 만 치면 되네요.


두 파일을 연결하는 방법은...
우선 버클리DB의 경로가 /usr/local/BerkeleyDB.4.1 이라고 가정하구요.

생성된  include/db.h 와 lib/libdb-4.1.a 파일을 적당하게 복사 / 심볼릭 링크를 해줍니다.
즉 db.h 파일을 /usr/include 에 복사해 넣고
예) cp /usr/local/BerkeleyDB.4.1/include/db.h /usr/include
또 libdb-4.1.a 파일을 /usr/lib/libdb.a 로 심볼릭 링크를 해줍니다.
예) # cd /usr/lib
     # ln -s ../local/BerkeleyDB.4.1/lib/libdb-4.1.a libdb.a
이렇게 하고
컴파일을 하면 에러없이 잘 넘어갑니다.

그리고 센드메일을 시작하면 에러가 안뜹니다. ^^
제 경험이니 다른분들의 경우 다를 수도 있을 겁니다.

고생하는 분들에게 도움이 되길..
728x90

댓글