Unix/Solaris10

Postfix + SpamAssassin - 1. 펄모듈

ForceCore 2006. 12. 21. 04:06

Postfix로 메일 시스템을 얹었고,

Majordomo로 비교적 괜찮은 메일링리스트를 돌릴 수 있게 되었다.

남은 것은 스팸 방지.

 

MimeDefang과 SpamAssassin이 유명한데, 두 개의 소프트웨어를 동시에 사용 하는 것이 가능하다. (!) 필자는 MimeDefang을 먼저 받았는데 readme.spamassassin에 spamassassin과 동시에 사용하는 방법이 설명되어 있었다. spamassassin을 먼저 설치하라고 한다 ㅡㅡㅋㅋ

 

http://spamassassin.apache.org/

아파치재단! SpamAssassin을 받아서 압축을 해제하고 INSTALL을 잘 읽어본다. -_-ㅋ

 

INSTALL파일에 의하면...

perl Makefile.PL을 실행시킨다.

 

...............;; 펄에 뭐가 설치되지 않았다고 잔뜩 오류가 난다 OTL

 

REQUIRED module missing: Digest::SHA1
REQUIRED module missing: HTML::Parser
optional module missing: DB_File
optional module missing: Net::DNS
optional module missing: Mail::SPF::Query
optional module missing: IP::Country
optional module missing: Razor2
optional module missing: Net::Ident
optional module missing: IO::Socket::INET6
optional module missing: IO::Socket::SSL
optional module missing: DBI
optional module missing: LWP::UserAgent
optional module missing: HTTP::Date
optional module missing: Archive::Tar
optional module missing: IO::Zlib

 

optional이라고 된 것들이 있는데, 사실 말이 옵션이지 HTML파서가 없으면 스팸필터가 잘 안 될 것이다 -_-;; 이들 기능이 있으면 다 피가 되고 살이 되는 것들이다. 모두 클리어시켜보자.

 

근데디서 받아야 하나? Help OTL ㅠ.ㅠ

http://www.cpan.org/

여기서 필요한 모듈을 관리 하고 있는 것 같군!

여기서 받아서 컴파일 해도 되고,

 

perl -MCPAN -e shell이라고 친다.

첫 실행이라서 설정을 하는 것이 나오는군!

거의 다 엔터만 치면 된다 -_-;;

설정이 다 되었으면...

 

cpan>

이라는 것이 보일 것이다 +_+

검색을 해보자.

 

i /검색어/

예를 들면...

i /Digest::SHA1/

라고 검색을 하면

Module          Digest::SHA1    (G/GA/GAAS/Digest-SHA1-2.11.tar.gz)
Module          RDFStore::Stanford::Digest::SHA1 (A/AR/AREGGIORI/RDFStore-0.42.tar.gz)
Module          Template::Plugin::Digest::SHA1 (A/AN/ANDREWF/Template-Plugin-Digest-SHA1-0.03.tar.gz)
3 items found
이렇게 나올 것이다.

install Digest::SHA1

명령으로 설치.

 

억... 실패했다 -_-;;;

CPAN을 업그레이드 하려면 무슨 메시지를 치시오 하는 것이 나오는데 그 메시지를 쳐서 CPAN을 업그레이드 했다. 업그레이드 했다가 방법당했다 <(-_-)>

 

CPAN: File::HomeDir loaded ok
Sorry, we have to rerun the configuration dialog for CPAN.pm due to
the following indispensable but missing parameters:

mbuild_arg, mbuild_install_arg, mbuild_install_build_command, mbuildpl_arg


The next questions deal with Module::Build support.

A Build.PL is run by perl in a separate process. Likewise we run
'./Build' and './Build install' in separate processes. If you have any
parameters you want to pass to the calls, please specify them here.

Parameters for the 'perl Build.PL' command?
Typical frequently used settings:

    --install_base /home/xxx             # different installation directory

Your choice:  []

 

 

끄응.....;;

업그레이드 하지 말고 그냥 쓰길 바란다 ㄱ-;;

 

일단 필자는 수동 인스톨을 하기로 함.

SHA1을 받았다. 압축을 해제하고 그 안의 readme를 읽었다.

perl Makefile.PL

make

make test

make install을 하면 된다고 하는데

솔라리스라서 (-_-) 상큼하게 에러가 난다.

/usr/ucb/cc:  language optional software package not installed

흥. 그래서 잠시 cc를 ccc로 rename하고 gcc를 소프트링크 시켰더니...

 

cc: unrecognized option `-KPIC'
cc: language ildoff not recognized

 

 

해결방법:http://blogs.sun.com/fintanr/entry/perlgcc

perlgcc라는 것이 있나보다. locate로 perlgcc를 찾고,

/usr/perl5/5.8.4/bin/perlgcc Makefile.PL을 해주면 해결된다.

make test

make install

하니 설치됨.

 

이하는 perl Makefile.PL을 일단 해보고 문제가 생기면 그때서야 perlgcc를 사용했다.

make test도 꼭 해주었다. 문제가 생기면 골치아파서...;

 

optional module missing: DB_File

버클리 DB를 설치했다. Sunfreeware에서 받은 패키지는 BerkeleyDB-{버전} 이 붙는데, /usr/local/BerkeleyDB 소프트링크를 생성해야 했다.


optional module missing: Net::DNS

설치 하는 데에 다른 모듈이 필요했다. 역시 설치해줌. 그다지 이상 없다.


optional module missing: Mail::SPF::Query

다른 여러가지 모듈이 필요했다. 별 문제 없음.


optional module missing: IP::Country

문제 없음.


optional module missing: Razor2

스팸어새신이 통째로 받아진다 -0- 일단 skip.


optional module missing: Net::Ident

Apache.pm을 찾지 못한다고 하여 낭패.

/usr/perl5/5.8.4/lib/CGI/Apache.pm을 /usr/perl5/5.8.4/lib/Apache.pm으로 소프트링크.

mod_perl.pm역시 비슷하게... 했는데 잘 안 되어서 그냥 안 깔기로 했다 -_-;;


optional module missing: IO::Socket::INET6

다른 모듈 필요.


optional module missing: IO::Socket::SSL

sunfreeware로부터 openssl를 받아서 설치.

/usr/local/ssl을 OpenSSL path로 주었다. 경고가 떴지만... 무시하고 perlgcc를 이용하였고, make, make test. 테스트가 모두 성공하였으니 뭐 OK겠지;; OpenSSL이 컴파일 된 컴파일러와 같은 옵션이어야 한다면서.... 경고가 떠서 쫄게 만든다.


optional module missing: DBI

프록시 뭐가 optional이라고 하는데 안 설치하고 그냥 컴파일하고 인스톨했다.


optional module missing: LWP::UserAgent

필요한 모듈이 있었음... 전에 뭣도 모르고 warning을 무시하고 설치한 모듈이 발목을 잡았다 -0-;; 이를 해결하니 문제 없었음.


optional module missing: HTTP::Date

LWP::UserAgent를 설치하니 되었다 (?)


optional module missing: Archive::Tar

별 문제 없음.


optional module missing: IO::Zlib

별 문제 없음.