Unix/Solaris10

pine 컴파일 하기

ForceCore 2006. 7. 1. 07:56
솔라리스엔 기본적으로 메일서버가 돌아가고 있다.
물론 보안상
# svcadm disable smtp
라고 해서 끄는게 좋다.

좀 알려진 서버인데 이런 게 돌아가고 있으면...
잘못하면 크래킹 당해 스팸메일 발신용으로 전락하기도 한다. -0-;;

하지만 smtp서비스를 써서 메일을 발신한다고 해보자.
유닉스 터미널에서 메일을 작성할 때 좀 편한게 pine이더군. ㅡㅡa
다른 더 좋은게 있다면 알려주시길 :D
필자는 그냥 이것을 처음 접했기 때문에 관성적으로 쓰고 있다;;

http://www.washington.edu/pine/
파인 소스를 받았다.

매뉴얼을 보니 build 스크립트를 실행시키라고 하는데,
build에 OS지정을 하는 것이있었다.
벗뜨... 솔라리스의 OS코드가 뭔지 당최 모르겠어서, (README엔 나오지 않는다.)
컨닝할 곳을 찾았다.

http://www.math.washington.edu/~chappa/pine/pine-info/build/

워싱턴대 수학과 -0-?;;;
# ./build gso
GCC를 쓰는 솔라리스는 저렇게 컴파일 하라고 한다.

엉? 그런건 없댄다. OS버전에 따라 gs4, gs5를 치라는데,
uname -a를 치면 SunOS 버전 5.xx라고 하니
# ./build gs5
라고 했다. OpenSSL이 없다고 경고하네...;;
이 경고는 좀 심각해보인다. 그래서, 또 컨닝할 곳을 찾았다.
......?
pkginfo | grep ssl로 확인하니 OpenSSL이 존재한다.
빌드 옵션을 주면 될듯...

openssl이라고 명령을 쳐도 잘 듣는다... so,
openssl을 찾아봤다.
# find / -name openssl

/usr/sfw/bin/openssl
/usr/sfw/include/openssl
/etc/sfw/openssl

음... 어디가 정답일까?
http://www.washington.edu/pine/tech-notes/installation.html
openssl 디렉토리 지정을 위해서

./build gs5
라고 해주었더니, SSL 워닝은 안 뜨는 대신
컴파일이 안 되는 오류가 나왔다 (-_-;;)

The assumption is that the certs directory is in SSLDIR/certs, the includedirectory is SSLDIR/include, and the library directory is SSLDIR/lib.You can change those assumptions with

이런 -_-;; 옵션이 더 있다. 그리고 솔라리스10에서는 openssl파일들이 분산 되어있는 듯.

SSLCERTS=/etc/sfw/openssl/certs
SSLINCLUDE=/usr/sfw/include/openssl
SSLLIB=/usr/sfw/lib
인것 같다.

# ./build clean
을 한 뒤 (안 하니까 file already exists라면서 컴파일이 안 된다)

# ./build gs5 SSLCERTS=/etc/sfw/openssl/certs SSLINCLUDE=/usr/sfw/include/openssl SSLLIB=/usr/sfw/lib
를 하니 OK.

시간이 꽤 걸린다...

컴파일이 완료되었으면 소스/bin으로 들어가서
./pine
을 실행해 되는지 확인한다. 설정파일이 없어서 warning이 뜬다 (-_-);;

실행은 되므로 설치해보자.

# cp pine /usr/local/bin
pine은 데몬이 아니고, 또 외부에서 사용할 프로그램도 아니기에
local이라는 이름이 붙은 곳에다 복사했다.

................
OTL

설정이 생각보다 힘들다.
벗뜨..
~/.pinerc
Personal configuration file for each user.
이 파일을 이용해보자 (!)

일단 pine에 들어가 setup을 한다.
열심히. 그리고 이것을
/usr/local/lib/pine.conf
로 쓰는 것이다. +_+

시스템 전체에 적용 되는 것이므로 잘 설정하자. 필요한것만.
user-domain은 자신의 서버를 준다.
xxx.net 뭐 이런것.
사실 user-domain외 다른 것은 건들 이유가 없다;;;

mv .pinerc /usr/local/lib/pine.conf
이제 잘 된다. incomplete domain이라는 메시지는 뜨지 않는다.
smtpserver를 설정하지 않으면 user-domain을 사용하는듯.
OK. 테스트 메시지도 잘 보내졌다.

Note: /usr/local/lib 디렉토리 소유자를 root:sys로 주고, 권한은 755로 하라. (etc와 마찬가지로). 또한 그 설정 파일도 마찬가지로 할 것. 안 그러면 pine이 일반 유저로서는 저 디렉토리에 access하지 못해서 설정이 읽히지 못한다.

Note: 한글이 입력이 안 되면, 파인 설정에서 charset을 euc-kr이나 UTF-8로 잡아준다. UTF-8추천 (-_-?! UTF-8 is the way of the future ㅡㅡㅋ)