PPP가 떠있는 동안, 온라인으로 뉴스를 읽는것이 가능하다. 여기에는
몇가지 가능한 프로그램들이 있다. 간단한 방법으로는 rtin
또는
trn
이 있다.
대부분의 경우 설정할 필요가 있는 것은 다음과 같다. (보통 한번만, ".profile" 안에):
export NNTPSERVER=news.acme.net
To get the From-address correct in postings, some programs may require:
export NNTP_INEWS_DOMAIN=acme.net
오프라인일때 뉴스를 읽을 수 있도록 하면, 전화세를 줄일 수 있고 더 많은 융통성을 가지게 되는데, 한 종류의 로컬 뉴스-스풀을 설정해야 한다. 여기에는 몇가지 설정이 필요하다, 그리고 어느정도 디스크의 여유공간이 필요하다. 초기 셋업이 끝난 후에는, 때때로 주의를 기울여 잘 돌아가는지 실행시켜 보아야 한다.
두가지 해결책을 여기서 설명한다.
여기서 설명할 해결책은 뉴스서버 C News와 NNTP 프로토콜에 기반을 둔다. C News는 원래 다른 종류의 설정을 목표로 하는것이다. 그러나 이것은 우리의 상황도 다룰 수 있을 만큼 유연하다. 새롭고 인기있는 INN 뉴스서버를 사용하기를 원할런지도 모르지만, 그것은 리소스 관점에서 더 많은 것을 필요로 한다. 어쨌든, 둘다 설치하지 않도록 조심한다; 둘은 쉽게 공존할 수 없다.
news
유저로 로그인해서 뉴스의 모든 관리가 모두 해결된다는
것은 아주 결정적인 것이다. 모든 설정파일들은
/usr/lib/news
에 위치한다. 이것들을 다루는 한가지 방법으로,
root
로 로그인하였을때 su news; cd
라 입력하는
방법이 있다.
설정에서 가장 중요한 파일들은:
active
파일은 활성화된 뉴스그룹에 대한 목록이다. 이는
addgroup 명령을 실행시킬때 마다 필요할 때 갱신된다. 예를
들어 addgroup comp.os.linux.networking y
라고 할 수 있다.organization
은 Organizaton:
헤더 필드안에
들어갈 것을 원하는대로 넣어두면 된다. 우리의 경우:
Dirk Gently's Holistic Detective Agency
mailname
에는 우리의 경우 acme.net
을 써주어야
한다.whoami
파일에는 당신의 사이트
이름을
Path:
에 써준다. 여기서 설명한 셋업에서, NewsX
을
이용하여, 그 이름이 머신을 떠나게 해서는 안된다, 그래야 그것이 유일할
때 얼마든지 원하는대로 셋팅할 수 있다. 우리의 경우는
roderick
이라 하겠다.
sys
는 배포되는 뉴스를 가져오고 촉진하는 것을 조절한다.
우리의 경우에는 ISP에 acme.net
을 Path에 추가한다는
것을 가정한다, 그리고 이것은 우리가 가지고 있는 유일한 뉴스 소스이다.
주어진 예는 우리에게 도착된 모든 것을 받아들이고, 전에 볼 수 없었던
것만 acme.net
에 뉴스를 게시한다는 것을 알려준다. 그리고 게시는
원래 우리가 운영하는 사이트에만 한다. 이렇게 간단하게 된 셋업에서는
모든 그룹은 하나의 소스에서 왔다는 것을 가정한다. /all
은
배포를 명시한다, 그리고 반드시 포함되어야 한다. 글자 F
는
바깥으로 나가는 뉴스기사가 파일에 쌓인다는 것을 말한다.
ME:all/all::
acme/acme.net:all,!junk/all:FL:
mkdir /var/spool/news/out.going/acme
mailpaths
는 moderate groups(역자주: 권한을 가진 사람만
게시할 수 있는 뉴스그룹, 포스팅할때는 그러한 권한을 가진 관리자에게
메일을 보내는 것으로 대신한다. 대표적으로 comp.os.linux.announce가
있다.)의 포스팅에 관한 것을 조절한다. 보통 이 일은 ISP가 맡는다.
C News는 매일 어느정도 유지보수할 필요가 있다. 그러나 이는 한번,
news
사용자로서 crontab -e
명령을 통하여 모두
정하는 것이 가능하다. 권장하는 셋업은 다음과 같다; 이를 필요로
한다는 것이 나타나게 된다:
# maintain incoming and outgoing batches
10,40 * * * * /usr/lib/newsbin/input/newsrun
# expire C News, once a day
30 0 * * * /usr/lib/newsbin/expire/doexpire
# monitor and report if needed
00 2 * * sat /usr/lib/newsbin/maint/addmissing
40 3 * * * /usr/lib/newsbin/maint/newswatch
50 3 * * * /usr/lib/newsbin/maint/newsdaily
Newsrun은 (한시간마다 두번씩) 기사를 내부와 외부로 옮긴다.
doexpire은 오래된 기사들을 지운다.(매일 밤 00:30에), 그리고 나머지
세 명령은 다양한 관리작업과 에러 수정을 수행한다.
역시 이것들이 머신을 시작할때 깨끗이 지워지는지 분명히 해야 한다.
root 사용자로, 다음과 같은 줄을 /etc/rc.d/rc.local
에 추가한다.
su news -c /usr/lib/newsbin/maint/newsboot
뉴스는 아마도 NewsX라는 프로그램이 뉴스를 NNTP 서버에서
가져옴으로써 모이게 된다. 이 프로그램은 여기서 찾을 수 있다:
ftp://sunsite.unc.edu/pub/Linux/system/News/newsx-0.1.tar.gz
Or:
ftp://ftp.sn.no/user/egilk/newsx-0.3.tar.gz
NewsX
를 셋업하는 것은 무척 간단하다.
일반적으로 설치하는 순서는 다음과 같다:
make
su
make install
exit
여기서의 셋업과 함께, 여러분이 해야할 모든 것은 "addgroup" 명령을 사용하여 여러분이 읽기를 원하는 그룹을 생성하는 것이다.
기사를 모으기 위해서, news
사용자는 다음과 같은 명령을 내린다
(PPP나 그와 비슷한 접속이 이루어져 있다고 가정한다.):
newsrun
newsx acme news.acme.net
newsrun
옵션 -d
는 스크린에 연속적인 출력을 행한다.
더 자세한 정보는 NewsX에 따라오는 문서를 참고하도록 한다.
NewsX는 역시 나갈 기사를 포스팅하는 것에도 주의를 기울일 것이다.
오래된 기사들을 처리하기 위해서, explist
파일이 필요하다.
예제의 설명은 우리가 무엇을 원하는지 설명하고 있다:
# hold onto history lines 14 days, nobody gets >120 days
/expired/ x 14 -
/bounds/ x 0-1-120 -
# retain these for 2 months
comp.sources,comp.os.linux.all x 60 -
# noise gets thrown away fast
junk,control x 2 -
# default: 14 days, no archive
all x 14 -
대안: 작은 뉴스-스풀에서, 뉴스그룹 control
이 필요
없을 때도 있다. 유용성에 비해서 대단한 부하가 걸린다. 주된 점은
기사들이 취소된다는 것이고, 그리고 그룹들은 자동으로 만들어질 것이다.
newsgroup
을 담고있는 제어 메세지들이 뒤죽박죽 섞이는 것을 막기
위해 newgroupperm
이라 불리우는 파일에 우리가 허가할 것들을
정의한다:
comp.os.linux tale@uunet.com yv
all any nq
이러한 예에서, comp.os.linux 아래 있는 적당한 그룹들을 모두 생성하려면
(y), news
사용자가 통지받기를 원한다면 (v)를 써준다. 나머지
모든것들을 조용히 이루어지게 하거나 (q) 무시할 수 있다 (n). 마지막
줄은 모든 뉴스그룹을 직접 만들기를 원한다면 충분할 것이다.
대안: NewX의 대안으로써 suck
이나 postit
과
결함한 slurp
이 있다. Slurp는 많은 뉴스 서버에 커다란 부하를
가하는 NNTP NEWNEWS 를 사용한다.
다른 해결책으로는 통합 패키지인 leafnode
를 설치하는 것이다.
이것은 모든 개인 뉴스 스풀에 필요한 모든 작업을 다룰 것이도,
설정하기도 쉽다. leafnode는 여기서 구할 수 있다:
http://www.troll.no/freebies/leafnode.html
C News의 경우, news
라는 사용자가 모든 뉴스 유지보수를
하여야 한다.
leafnode의 홈디렉토리는 /usr/lib/leafnode
에 있다.
설치하기 위해서는 다음과 같이 입력한다:
cd /usr/lib/leafnode
tar -xzvf leafnode-0.8.tgz
cd leafnode-0.8
make
su
make install
아직 root
로 로그인한다면, /etc/inetd.conf
의
NNTP를 제어하는 줄을 다음과 같이 바꾸어준다:
nntp stream tcp nowait news /usr/sbin/tcpd /usr/local/sbin/leafnode
Activate it by:
killall -HUP inetd
exit
를 입력함으로써 news
사용자로 돌아온다.
/usr/lib/leafnode/config
에서는 NNTP 서버를 정의하고 있는
줄을 바꾸어준다. 우리의 경우에는:
server = news.acme.net
Leafnode는 news
사용자로 crontab -e
에 다음과 같은
명령을 첨가함으로써 자신을 관리할 것이다:
# expire Leafnode, once a day
0 4 * * * /usr/local/sbin/texpire
뉴스 교환은 다음과 같은 명령으로 news
사용자를 통해서
이루어진다. (PPP가 떠있고 실행됨을 가정)
The news exchange is also done as user news
by the
following command (assuming PPP is up and running):
/usr/local/sbin/fetch
사용자들은 뉴스를 읽기를 원하는 사용자들은 How do I set up an online news-reader?에 나온 방법을 사용하여야 하는데, 단 로컬 머신에서 설정할때는 제외한다, 예를 들면:
export NNTPSERVER=localhost
지금까지 나온 것이 해야 할 모든 것이다. 첫번째 fetch
는
이용할 수 있는 뉴스그룹의 리스트를 전달한다. Leafnode는
사용자가 어떠한 그룹을 요청하였는지 감시하고, 다음 번에 그
그룹이 활성화되면 받아들이게 된다.
대안: leafnode
의 대신할 만한 것으로는
nntpcache
가 있는데, 여기서 구할 수 있다:
ftp://ftp.suburbia.net/pub/nntpcache/nntpcache.tgz