다음 이전 차례

4. 리눅스 소프트웨어 FAQ

4.1 시스템의 시간을 맞추려면 어떻게 하나요?

xntp패키지를 http://www.eecis.udel.edu/~ntp/나 혹은 다른 리눅스 관련 웹사이트에서 구해서 사용하시기를 권장합니다.

4.2 패치를 적용하는 방법을 가르쳐 주십시오

소스코드가 있는 디렉토리로 이동합니다. 그리고

patch < patchfile

또는 패치 파일이 다른 디렉토리에 있을때

patch < /path/to/your/patchfile

4.3 보통 많이 사용하는 패키지의 최신 버전은 어디서 구할 수 있습니까?

부록 A에 더 많은 정보가 있습니다.

4.4 센드메일(sendmail)과 관련한 FAQ

센드메일을 이용한 버추얼 전자우편 호스팅 서비스를 구축하려 합니다. 그런데 `mail loops back to me'라는 에러 메시지가 생기는군요.

sendmail.cf의 w 클래스를 살펴보시고 양쪽의 도메인네임이 모두 지정되어 있는지 확인하세요.(/etc/sendmail.cw의 Fw/file/name 에 지정되어 있는 파일이나 혹은 /etc/sendmail.cf파일의 Cwhostnames... 라인에 이 내용이 지정되어 있어야 합니다.)

더 많은 정보를 얻고 싶을땐 http://www.sendmail.org/virtual-hosting.html을 참고하세요.

인터넷에 연결되어 있지 않은 오프라인상에서 사용하기 위한 센드메일의 설정 방법은 어떻게 됩니까?

sendmail.cf 파일의 가장 상단에 다음과 같은 내용을 추가하시고

O HoldExpensive=True

각각의 메일러(smtp, smtp8, esmtp, relay)의 `F=' 섹션에 `e' 플래그를 추가하세요. 예를 들면

Msmtp, P=[IPC], F=mDFMuXe, S=11/31, R=21, E=\r\n, L=990,
             T=DNS/RFC822/SMTP,
             A=IPC $h

그리고 센드메일 데몬을 시작시키는 명령에`-q15m' 같은 옵션을 포함하지 않도록 고쳐 줍니다.(센드메일을 -bd -os 옵션으로 실행시키기를 권장합니다. 더 많은 정보를 얻기 위해서는 센드메일 관련 문서를 참고하세요.) 이런 방법으로 메일 큐에 쌓여 있는 메일들을 여러분이 인터넷에 접속될 때 내보낼 수가 있게 됩니다.:

sendmail -q

UUCP를 통해 연결되어 있는 시스템에서 센드메일을 사용하려면 어떻게 설정해야 하나요?

이것은 그다지 간단히 답변될 수 있는 성질의 것이 아니지만 이 작업을 어떻게 행할 수 있는지, 그리고 어디서 관련 정보를 얻을 수 있는지 한번 이야기해 보죠.

주의: 이 섹션에서는 제가 현재 사용하고 있는 sendmail 8.8.8 을 기준으로 이야기하겠습니다. 다른 버전의 센드메일에서는 조금 다르게 적용될 수도 있지만 아이디어 자체는 똑같습니다.

1단계: 센드메일 소스를 ftp://ftp.sendmai.org에서 받아 오세요. 여기 포함되어 있는 툴들과 템플리트를 이용해서 설정 파일을 생성해 내어야 하기 때문입니다. ftp://ftp.redhat.com에서 rpm 패키지를 얻어오셔도 됩니다. 저는 여러분들이 이미 센드메일 바이너리를 컴파일해서 설치해 두었다고 가정하겠습니다. 이제 sendmail.cf파일을 생성해 내어야 할 차례입니다. 이 작업을 하기 위해서 sendmail-X.X.X/cf/cf디렉토리 아래의 템플리트를 이용합니다. uucpproto.mc라는 파일을 사용합니다. 이것을 다른 파일 이름(예를 들면 myuucp.mc)으로 바꾸어 복사해 둡니다. 보통 여기에 약간의 수정만 가하면 됩니다. 운영체제 타입을 정하고 SMART_HOST(메일 릴레이를 담당할 시스템 이름)을 결정합니다. 이 파일을 에디터로 열어서 다음 항목들을 수정해 줍니다.

OSTYPE:예)OSTYPE(linux)dnl
FEATURE(nodns)dnl 추가: DNS가 없을때
MAILER(smtp)dnl 추가: uucp-dom 메일러도 함께 사용하고 싶을때
define(`SMART_HOST', uucp:YOUR_UUCP_ISP)dnl 을 파일 맨 끝에 추가

이제 거의 다 됐습니다. 여러분이 수정한 파일은 다음과 같이 보이겠죠.

OSTYPE(linux)dnl
FEATURE(nodns)dnl
MAILER(local)dnl
MAILER(smtp)dnl
MAILER(uucp)dnl

define(`SMART_HOST',uucp:YOUR_UUCP_ISP)dnl

이제 sendmail.cf파일을 다음과 같이 생성합니다.

m4 ../m4/cf.m4 myuucp.mc > /etc/sendmail.cf

이제 해주어야 할 일은 센드메일이 DNS를 통해서 호스트네임을 찾지 않도록 하는 것입니다. 제 경험에 의하면 FEATURE(nodns)dnl 만으로는 충분하지가 않았습니다. 이것이 제대로 작동되게 하려면 /etc/service.switch 파일을 다음과 같이 만들어 줍니다.

hosts           files
aliases         files

이제 uucp 시스템이 제대로 설정되었다면(uuchk 로 확인해보기 바랍니다.) 센드메일 데몬 프로세스를 /usr/sbin/sendmail -bd -q 15m 또는 그 비슷한 명령으로 시작할 수 있습니다.

몇 개의 테스트 메시지들을 보내 보세요. 그리고 그 메시지들이 YOUR_UUCP_ISP 시스템의 uucp 디렉토리에 제대로 쌓이는지 확인해 보고 만약 잘 안된다면 다시 앞으로 돌아가서 무엇이 잘못되었는지 확인해 보세요.(로그 파일이 매우 유용하게 쓰일 것입니다.)

이제 거의 다 됐습니다. 이제 해주어야 할 일은 시스템을 잘 설정해서 여러분의 ISP와 매 정해진 시간마다 이메일을 교환하도록 하는 것입니다. 몇 가지 방법이 있긴 하지만 저는 crontab 을 권장합니다.: 가장 간단한 방법은

0,15,30,45 * * * * /usr/sbin/uucico -S YOUR_UUCP_ISP 

라는 줄을 crontab 에 추가해 주는 것입니다.(root 로긴한 상태에서 crontab -e -u uucp 라고 실행시키세요.) 이렇게 하면 매 15분마다 UUCP 쪽으로 접속을 할 것입니다.(crontab 과 비슷한 다른 방법에 대해서는 매뉴얼 페이지를 참고하세요.)

여기서 이야기한 것들은 충분한 설명이 되지 못합니다. 더 이상의 정보를 다음 웹사이트들을 통해서 얻을 수가 있으니 참고하세요.

4.5 POP3 사용자들에게 `already being read' 라는 에러 메시지가 생깁니다.

/var/tmp/.pop/<username>을 지워 버리세요. 더 좋은 방법은 pop3d 배포본에 들어 있는 rm_stale.sh 스크립트를 cron등을 통해 주기적으로 실행하는 것입니다.

특정 리눅스 배포본, 특히 슬랙웨어 3.3과 3.4에서는 /var/tmp/.pop 디렉토리가 없는 것으로 밝혀져 이것 역시 에러 메시지의 원인이 되기도 합니다. 이 디렉토리가 제대로 소유자와 그룹 퍼미션이 설정되어 있는지 확인해 보세요.

4.6 서머타임에서도 제대로 동작하기 위해서 시간 설정을 어떻게 해 주어야 합니까?

1.  cd /usr/lib/zoneinfo
    rm localtime posixrules posixtimes
    ln -s /etc/localtime localtime
    ln -s /etc/localtime posixrules
    ln -s /etc/localtime posixtimes

2.  cd /etc
    rm localtime
    ln -s /usr/lib/zoneinfo/Europe/Copenhagen localtime

3.  /etc/rc.d/boot.local(Suse 5.1의 경우)을 수정해 다음과 같은 라인을
    추가해 줍니다.

    clock -a
    echo "System time: $(date)"

    /etc/init.d/local(Unifix 2.0)을 수정해 다음과 같은 라인을
        추가해 줍니다.

    test -f /etc/adjtime || echo "0.0 0 0.0" >/etc/adjtime
    clock -a
    echo "System time: $(date)"

    /etc/rc.d/rc.local(레드햇, 슬랙웨어, 데비안....)을 수정해 다음과
        같은 라인을 추가해 줍니다.

    #test -f /etc/adjtime || echo "0.0 0 0.0" >/etc/adjtime
    clock -a
    echo "System time: $(date)"?

4.  TZ 가 정의되어 있는 곳은 모두 바꾸어 주어야 합니다. TZ 가 정의되어 있어서는 안되는 것이죠.

    cd /etc
    find . -exec grep -ln TZ {} 2>/dev/null \;
    TZ 가 정의되어 있는 곳에 #를 붙여 줍니다.

    예를 들면
    /etc/ENVIRONMENT        (unifix)
    /etc/profile*           (suse, unifix)
    /etc/login.defs         (suse, unifix)

5.  리부트(혹은 clock -a 를 수동으로 실행)

4.7 리눅스 시스템에서, 윈도우즈 시스템들과 공유하고 있는 리소스들에 접근하기 위해서는 어떻게 하나요?

FAQ 4.7/ 4.8을 참고하세요.

4.8 `ls' 를 칼라풀하게 만들려면 어떻게 해야 합니까?

다음 내용을 $HOME/.bashrc 파일에 추가합니다.

alias ls = 'ls --color'

만약 bash가 아닌 다른 쉘을 사용한다면 그 쉘의 rc 파일에 같은 내용을 넣어 주면 됩니다.


다음 이전 차례