inn $BF~8}(B | inn $B$OFq$7$/$J$$(B | INSTALL $B$NFI$_J}(B | INN-2 for NetBSD | site map for INN

Last Update 19:53:33 03/12/08

INN2.3/INSTALL $B$NFI$_J}(B ($BF|K\8lLu(B)

inn-2.3/INSTALL $B$rBPLu$N7A$GF|K\8l$KLu$7$F$$$^$9!#(B 2.2.2 $B$H(B 2.3 $B$N0c$$$O(B ($B$3$NJ8=q>e$G$O(B) configure $B$KFs$D$NA*Br$,A}$($?$3$H$G$9!#(B ( --enable-uucp-rnews, --enable-setid-inews ) $B$=$l0J30$OF1$8$G$9$N$G!"F1MM$K$*FI$_2<$5$$!#(B

($B$H=q$$$F$"$j$^$7$?$,!"$BL\ Welcome to INN 2.3!
Supported Systems
Before You Begin <A note here about required packages>
Unpacking the Distribution
Choosing an Article Storage Format
Installing INN
Configuring INN

  1. inn.conf (REQUIRED)
  2. newsfeeds (REQUIRED)
  3. incoming.conf (REQUIRED)
  4. cycbuff.conf (Required only if using the CNFS article storage method)
  5. storage.conf (Required only if using the CNFS or timehash storage methods)
  6. overview.ctl (Required only if using the CNFS or timehash storage methods)
  7. expire.ctl (REQUIRED)
  8. nnrp.access (REQUIRED)
Creating the article spool (CNFS only)
Creating the db files
Setting up the news.daily cron job
Starting the system

Welcome | Supported | Required | Unpack | Sto. Format | install | config | ( inn.conf | newsfeeds | incoming.conf | cycbuff.conf | storage.conf | overview.ctl | expire.ctl | nnrp.access ) | spool(CNFS) | db | news.daily | starting
Welcome to INN 2.3!
Please read this document thoroughly before trying to install INN. You'll be glad you did. INN $B$rF~$l$kA0$K!"$3$NJ8=q$r:G8e$^$G0lDL$jFI$s$GM_$7$$!#(B $BI,$:$=$NJ}$,$$$$$3$H$,$"$k$H;W$$$^$9!#(B
If you are upgrading from a previous release of INN (pre-2.0) then it is recommended that you make copies of your old configuration files and use them as guides for doing a clean installation and configuration of 2.3. Many config files have changed, some have been added, and some have been removed. You'll find it much easier to start with a fresh install than to try to update your old installation. $B$b$7(B INN 2.0 $B$h$j$bA0$NHG$+$i99?7$7$h$&$H$9$k>l9g$O!"(B ($B40A4$K?75,$K@_CV$9$k>l9g$G$b(B) $B@_Dj$N
Welcome | Supported | Required | Unpack | Sto. Format | install | config | ( inn.conf | newsfeeds | incoming.conf | cycbuff.conf | storage.conf | overview.ctl | expire.ctl | nnrp.access ) | spool(CNFS) | db | news.daily | starting
Supported Systems < Should list all supported OS/hardware configurations >
  FreeBSD 2.2.x, 3.x
  Linux 2.0.x (with libc 5.4 or libc 6.0)
  OpenBSD ?.?
  SCO 5.0.4 (tested with gcc 2.8.1)
  Solaris 2.5.x
  Solaris 2.6.x
  SunOS 4.1.4
  UX/4800 R11 and up
  AIX 4.2
$B:8$K5s$2$?5!3#$GF0$/$3$H$,J,$C$F$$$k!#(B
Welcome | Supported | Required | Unpack | Sto. Format | install | config | ( inn.conf | newsfeeds | incoming.conf | cycbuff.conf | storage.conf | overview.ctl | expire.ctl | nnrp.access ) | spool(CNFS) | db | news.daily | starting
Before You Begin <A note here about required packages>
INN requires Perl to build and to run several subsystems. Though some perl scripts are compatible with Perl 4, some features (such as script embedded in the server) mandate Perl 5. An audit has not yet been done on what the minimum version of Perl for all features is, so it is recommended that you have at least Perl version 5.004. For instructions on obtaining and installing Perl, see http://language.perl.com/info/software.html. INN $B$O(B $B@_CV$HF0:n;~$K(B Perl $B$rI,MW$H$9$k!#(B INN $B$K4^$^$l$F$$$k(B Perl $B/$J$/$H$b(B 5.004 $B$,I,MW$G$"$k!#(B Perl $B$NH$N$3$H(B
If you want to enable support for authenticated control messages (this is NOT required) then you will need to install PGP. There are some questions involving PGP's license if you are running a commercial installation of INN (i.e. you are an ISP). See http://www.pgp.com/ for more information about PGP. $B%3%s%H%m!<%k!&%a%C%;!<%8$KG'>Z5!G=$r;H$&$3$H$b=PMh$k!#(B $B$=$N;~$K$O(B PGP $B$bF~$l$F$*$/I,MW$,$"$k!#$b$7(B INN $B$r>&MQ$G;H$&!"(B $B$D$^$j$"$J$?$,@\B36H$N0l4D$H$7$F(B INN $B$rF0$+$9$J$i!"(B PGP $B$N>&MQ7@Ls$K$D$$$F5?Ld$,$"$k$+$bCN$l$J$$!#(B $B$=$N;~$K$O:85-(B URL $B$r;2>H$N$3$H(B
<I'm completely confused by the PGP site now. Someone more familiar with it needs to update this entry. I always did a make install in FreeBSD ports dirs :)> $B\$7$$?M$,$3$NItJ,$r@5$7$/=q$-BX$($F2<$5$$!#(B $B<+J,$O(B FreeBSD $B$N(B ports directory $B$G(B make install $B$9$k$@$1$J$N$G!#(B
Welcome | Supported | Required | Unpack | Sto. Format | install | config | ( inn.conf | newsfeeds | incoming.conf | cycbuff.conf | storage.conf | overview.ctl | expire.ctl | nnrp.access ) | spool(CNFS) | db | news.daily | starting
Unpacking the Distribution
Obtain the INN source distribution from ftp.isc.org in directory /isc/inn/snapshots. The files in the snapshots directory are snapshots of the current inn source taken daily. They are stored in date format, i.e. 0400 5 May 1998 GMT's file is named inn-1998-05-17_04-00.tar.gz. Choose the newest file. The distribution is in gzip compressed tar archive format. To extract it, execute:
     gunzip -c <inn-src-file> | tar -xf -
Extracting the source distribution will create a directory named inn where the source resides.
INN $B$N(B $B%=!<%9!&%3!<%I$r$O(B
ftp://ftp.isc.org/isc/inn/$B$+$iF~
Welcome | Supported | Required | Unpack | Sto. Format | install | config | ( inn.conf | newsfeeds | incoming.conf | cycbuff.conf | storage.conf | overview.ctl | expire.ctl | nnrp.access ) | spool(CNFS) | db | news.daily | starting
Choosing an Article Storage Format
INN supports three methods of storing articles on your system. Each method has specific advantages and disadvantages. These storage methods are: INN $B$G$O5-;v$NJ]B87A<0$H$7$F;0DL$j$NJ}K!$,$"$k!#(B $B$=$l$>$l$KD9=j$H7gE@$,$"$k!#$=$N;0$D$H$O
traditional This is the storage method used by all previous versions of INN. Articles are stored as individual text files whose names are the same as the article number. The articles are divided up into directories based on the news group name. For example, article 12345 in news.software.nntp would be stored in the article spool under the path "news/software/nntp/12345". $B5lMh$N(B INN $B$+$i;H$o$l$F$$$kJ}<0!#5-;v$NHV9f$HF1$8L>A0$G!"(B $BJ8;z$N7A<0$G0l$D$N5-;v$,0l$D$NIh$H$7$FJ]B8$5$l$k!#(B $B$5$i$K%K%e!<%9!&%0%k!<%WKh$K(B directory $B$,:n$i$l$k!#(B $BNc$($P(B news.software.nntp $B$N(B 12345 $BHV$N5-;v$O(B $B5-;vNN0h$N2<$K(B "news/software/nntp/12345"$B$H$$$&L>A0$GJ]B8$5$l$k!#(B
Advantages: solid time-tested code, compatible with all of the third-party INN add-ons available, gives you fine control over article retention times. $BD9=j(B $BD9$$Nr;K$N$"$k%3!<%I!#0BDj$7$F$$$k!#Bh;0 Disadvantages: takes a fast computer with a fast I/O system to keep up with current USENET traffic volumes due to file system overhead. Groups with heavy traffic tend to create a bottleneck because of inefficiencies in storing large numbers of article files in a single directory. $B7gE@(B $B5-;vNL$NB?$$(B($B=j0b(B Full Feed)$B$G$O!"(B $B=hM}$K$O9bB.(B CPU, $B9bB.F~=PNO$N5!3#$,I,MW$H$J$k!#(B $BN.NL$NB?$$(B newsgroup $B$K=q$/;~$K0l$D$N(B directory $B$K(B $BB?$/$N5-;v$rJ]B8$9$k8zN($N0-$5$,N'B.CJ3,$K$J$C$F$7$^$&!#(B
timehash - Articles are stored as files like in the traditional storage method, but are divided up into directories based on the arrival time so so that no directory contains enough files to cause a bottleneck. $B5-;v$O=>Mh$NJ}K!$N$h$&$KJ]B8$5$l$k$,!"(B directory $B$r5-;v$NE~Ce;~9o$K$h$kJ}K!$GJ,$1$k!#(B $B$=$N$?$a!"(B $BFCDj$N(B directory $B$KB?$/$N5-;v$,=8Cf$7$FN'B.CJ3,(B (bottleneck) $B$K$J$C$?$j$7$J$$!#(B
Advantages: Heavy traffic groups do not cause bottlenecks, fine control of article retention time still possible. $BD9=j(B: $BE>AwNL$,B?$$%0%k!<%W$,N'B.$H$J$i$J$$!#(B $B$7$+$b5-;v$NJ]B84|4V$r@_Dj=PMh$k!#(B
Disadvantages: Still suffers from speed degradation due to filesystem overhead. $B7gE@(B: $B%U%!%$%k!&%7%9%F%`>e$KIh$r:n@.!&>C5n$9$k$?$a$N(B ($BI,MW$J(B)$B;~4V$K$h$kE>AwB.EY$NDc2<$H$$$&LdBj$rHr$1$FDL$k$3$H$,=PMh$J$$!#(B
cnfs - CNFS stores articles sequentially in pre-configured buffer files. When the end of the buffer is reached articles new articles are stored from the beginning of the buffer, overwriting older articles. CNFS $B$O5-;v$rM=$a:n$C$F$*$$$?J]B8MQ$NIh$KE~Ce=g$K=q$$$F9T$/!#(B $B$=$l$,0lGU$K$J$C$F$7$^$C$F!"?7$7$$5-;v$,E~Ce$7$?;~$K$O!"$^$?=i$a$N(B $BJ}$+$i>e=q$-$7$F$$$/!#(B
Advantages: Blazingly fast because no file creations or deletions are necessary to store an article. Does not require manual article expiration; old articles are deleted to make room for new ones when the buffers get too full. Also, with CNFS your server will never throttle itself due to a full spool disk, and you can restrict groups to just certain buffer files so that they can never use more than the amount of disk space you allocate to them. $BD9=j(B: $B1j$N$h$&$KB.$$!#Ih$r:n@.!&>C5n$9$kI,MW$,$J$$$+$i$G$"$k!#(B $B5-;v$N;~4V<:8z(B (expire) $B$K$D$$$F$b2?$b@_Dj$,MW$i$J$$!#(B CNFS $B$,0lGU$K$J$C$?$i!"(B $B?7$7$/6u$-$r:n$k$?$a$K8E$$$b$N$O>!C$5$l$k$@$1$G$"$k!#(B $B5-;v$NJ]B8NN0h(B spool disk $B$,0lGU$K$J$C$?$H$$$&M}M3$G(B innd $B$,$H$^$k$H$$$&$3$H$O7h$7$F5/$-$J$$!#(B $B$"$k%K%e!<%9%0%k!<%WMQ$K@lMQ$NNN0h$r3dEv$F!"(B $B$=$N%0%k!<%W$K$O$=$l0J>e$r;H$o$J$$$h$&$K@)8B$9$k(B $B$H$$$&$3$H$bEvA32DG=$G$"$k!#(B
Disadvantages: Article retention times are more difficult to control because old articles are overwritten automatically. $B7gE@(B $B5-;v$NJ]B8F|?t$r@_Dj$9$k$H$$$&$3$H$O=PMh$J$$!#(B
In general, if you plan to carry a full news feed and want to actually have your server keep up with the traffic you should be using CNFS. If you just want to carry a subset of the full newsgroup hierarchy (such as everything but the binaries group) then we suggest the traditional storage method. $B0lHLO@$H$7$F!"(B $B%U%k%U%#!<%I!"(B $B$D$^$j@$3&$NA4$F$N%K%e!<%9%0%k!<%W$rl9g$K$O(B traditional $BJ}K!$r;H$&$N$,NI$$!#(B
Welcome | Supported | Required | Unpack | Sto. Format | install | config | ( inn.conf | newsfeeds | incoming.conf | cycbuff.conf | storage.conf | overview.ctl | expire.ctl | nnrp.access ) | spool(CNFS) | db | news.daily | starting
Installing INN
Before beginning installation you should make sure that there is a user on your system named 'news', and that this user's primary group is set to a group called 'news'. The home directory of this user should be set to the directory under which you wish to install INN ("/usr/local/news" is the default and is a good choice). INN will install itself as this user and group. You can change these if you want but these are the defaults and it's easier to stick with them on a new installation.

userid $B$H(B group

$B@_CV$r;O$a$kA0$K!"(Bnews $B$H$$$&(B userid $B$H!"$=$NBh0l(B group $B$,(B news $B$K$J$C$F$$$k$3$H$r3NG'$9$k!#(B INN $B$r@_CV$9$k@h(B ($BNc$($P=i4|CM$G$O(B /usr/local/news ) $B$r$=$N(B home directory $B$H$7$F$*$/!#(B INN $B$N@_CV$O!"$3$N(B userid/group $B$H$7$F9T$&!#(B $B$3$l$i$rJQ99$9$k$3$H$O$b$A$m$s2DG=$G$O$"$k$,!"(B $B=i4|CM$H$7$F$O!"$=$&@_Dj$5$l$F$$$k$3$H!"(B $BFC$K?75,@_CV$N>l9g$K$O!"$3$l$,0lHV4JC1$G$"$k$3$H$rM}2r$5$l$?$$!#(B
INN now uses the GNU 'configure' program to make configuration rather painless. Unless you have a rather abnormal setup configure should be able to completely configure INN for your setup. If you want to change the defaults you can invoke the configure script with one or more command line options. The most commonly used options are described below.

configure

INN $B$O(B GNU $B$N(B configure $B$r;H$C$F$$$k$N$G4JC1$K=PMh$k$O$:$@!#(B $B2?$+FCJL$J$3$H$r$7$F$$$J$$8B$j!"(BINN $B$N(B make $B$N$?$a$N@_Dj$OMF0W$K9T(B $B$J$($k!#=i4|CM$+$i2?$+JQ99$9$kI,MW$,$"$k;~$K$O!"A`:n9T$GA*Br$9$k$3(B $B$H$,=PMh$k!#NI$/;H$o$l$kA*Br$r
Note for SCO 5.0.4... configure insists that syslog doesn't work for SCO and so sets the following as missing: syslog.3 syslog.c syslog.o in the config/config.data file. You need to manually delete those entries before trying to make the distribution. SCO 5.0.4 $B$N>l9g!"(Bconfigure $B$O(B SCO $B$G$O(B syslog $B$,F0$+$J$$$H8@(B $B$$D%$j!"(Bsyslog.3 syslog.c syslog.o $B$,$J$$$3$H$K$9$k!#$=$N$h$&$J(B $B>l9g$K!"G[I[7A<0$r:n$k;~$K$O!"$=$NA0$K$3$l$i$r>C$7$F$*$/I,MW$,$"(B $B$k!#(B
--prefix=PATH
Sets the installation prefix for INN. The default is /usr/local/news. All of INN's programs and support files will be installed under this directory. You should set this to the home directory of your "news" user (it will make installation and maintenance easier). Defaults to "/usr/local/news". INN $B$N@_CV$9$k(B PATH $B$r;XDj$9$k!#(B $B=i4|CM$O(B /usr/local/news $B$G$"$k!#(B INN $B<+?H$H4XO"$NIh$OA4$F$3$N2<$K@_CV$5$l$k!#(B $B$^$?(B userid (news) $B$N(B home directory $B$r$3$3$K@_Dj$7$F$*$/I,MW$,$"$k(B ($B$=$l$K$h$C$F@_CV!&$dJ]
--enable-tagged-hash
Use tagged hash table for the history database. The tagged hash format uses much less memory but is somewhat slower. This option is recommended if you have less than 256 MB of RAM on your news server. If your server disables tagged hash and expire takes many hours, you should check the amount of RAM to satisfy the following formula. If it doesn't satisfy, you should enable tagged hash and rebuild dbz files. history $B%G!<%?$Y!<%9$K(B tagged hash table $B7A<0$r;H$&!#(B $B$3$N7A<0$r;H$&$H!"5-21$O>/$J$/$F:Q$`$,!">/$7CY$/$J$k!#(B $B$b$7(B 256MBytes $B$h$j$b>/$J$$5-21$N5!3#$G(B inn $B$rAv$i$;$k>l9g$K$O!"(B $B$3$N@_Dj$r$9$k$3$H$r4+$a$k!#(B $B$b$7$3$N@_Dj$r$7$J$$>l9g$G!"(B expire $B:n6H$K2?;~4V$b$+$+$k$H8@$C$?>l9g!"(B $Bl9g!"$3$N(B tagged hash $B7A<0$rM-8z$K$7$F!"(B $B$=$N>l9g$O(B dbz $BIh$r:n$jD>$9(B$BI,MW$,$"$k!#(B
n > (6 + extendeddbz ? 12 : 4) * tablesize
n: amount of RAM
extendeddbz: extendeddbz in inn.conf
tablesize: value in 3rd field on the 1st line in history.dir
n: $B5-21$NBg$-$5(B
extendeddbz: inn.conf $B$K(B extendeddbz $B$r@_Dj$7$F$$$k$+$I$&$+(B
tablesize: history.dir $B$NBh0l9TL\$N;0$DL\$NMs$K=q$$$F$"$kCM(B
--with-perl
Enables support for Perl, allowing you to install filter scripts written in Perl. Highly recommended, because many of the really good spam filters are written in Perl. You will need Perl 5.004 or later installed on your system to enable this option. Perl $B$r;H$&$+$I$&$+!#$3$l$r;XDj$7$?;~$K$O(B Perl $B$G%U%#%k%?$r5-=R=PMh$k!#(B $B$3$l$O@'Hs@_Dj$9$k$3$H$r4+$a$k!#(B $B$H$$$&$N$b!"(BSPAM $B$h$1$KNI$$%U%#%k%?$,(B Perl $B$G=q$+$l$F$$$k$+$i$G$"$k!#(B $B$b$7$3$l$rM-8z$H$9$k>l9g!"(BPerl $B$NHG$O(B 5.004 $B0J9_$,I,MW$H$J$k!#(B
--with-tcl
Enables support for TCL (Tool Command Language). This allows you to install filter scripts written in TCL. Most available filters seem to be written in Perl these days, so you can safely leave out TCL support. If you choose to enable this then you will need to have a suitable TCL distribution installed. TCL $B$rMxMQ$9$k$+$I$&$+!#(B $B$3$N;XDj$K$h$C$F!"(BTCL $B$G=q$+$l$?%U%#%k%?$,;H$($k$h$&$K$J$k!#(B $B8=:_$N$H$3$m!"KX$s$I$N%U%#%k%?$O(B Perl $B$G=q$+$l$F$$$k$h$&$J$N$G!"(B TCL $BMxMQ$O@_Dj$7$J$/$F$b$$$$$+$bCN$l$J$$!#(B $B$3$l$rM-8z$K$9$k>l9g$K$OE,@Z$J(B TCL $B$NHG$,@_CV$5$l$F$$$kI,MW$,$"$k!#(B
--disable-shared
Do not create shared libraries $B6&M-%i%$%V%i%j$r:n$i$J$$!#(B($BLuCm(B)$B7k9=$*$9$9$a$+$bCN$l$J$$!#(B
--disable-static
Do not create static libraries $B@EE*%i%$%V%i%j$r:n$i$J$$!#(B
--enable-uucp-rnews ( inn-2.3 $B$+$i(B)
If this option is given to configure, rnews will be installed setuid root, owned by group uucp, and mode 4550. This will allow the UUCP subsystem to run rnews to process UUCP batches of news articles (rnews changes UID to the news user right after it starts). Prior to INN 2.2.3, installing rnews setuid news was standard; since most sites no longer use UUCP, it is no longer the default as of INN 2.2.3 and must be requested at configure time. You probably don't want to use this option unless your server accepts UUCP news batches. rnew $B$r(B setuid root, $B%0%k!<%W$r(B uucp $B$K$7$F(B mode $B$r(B 4550 $B$H$9$k!#(B UUCP/rnews $B$r;H$C$F5-;v$r%P%C%A7A<0$GE>Aw$9$k>l9g$K@_Dj$9$k!#(B rnews $B$O5/F0$9$k$H$9$0$K(B UID $B$r(B news $B8"8B$KJQ$($k!#(B 2.2.3 $B0JA0$G$O!"(Brnews $B$O(B setuid news $B$,I8=`$@$C$?!#(B $B$7$+$7B?$/$N5!3#$G$O(B UUCP $B$r;H$C$F$$$J$$$h$&$J$N$G!"(B $BI8=`$G$OF~$i$J$$$h$&$K$7$F!"I,MW$J>l9g$O!"$3$N@_Dj$r$9$k$3$H$H$7$?!#(B UUCP $B$r;H$C$F$$$J$$>l9g!"ITMW$G$"$k!#(B
--enable-setgid-inews ( inn-2.3 $B$+$i(B)
If this option is given to configure, inews will be installed setgid news and world-executable so that non-privileged users on the news server machine can use inews to post articles locally (somewhat faster than opening a new network connection). For standalone news servers, by far the most common configuration now, there's no need to use this option; even if you have regular login accounts on your news server, INN's inews can post fine via a network connection to your running news server and doesn't need to use the local socket (which is what setgid enables it to do). Installing inews setgid was the default prior to INN 2.2.3. inews $B$r(B setgid news $B$G!"C/$G$b@\FI$s$G$$$k(B $B?M$,5-;v$r(B inews $B$r;H$C$FEj9F=PMh$k$h$&$K$9$k!#(B ($B$=$&$9$l$P(B nntp $B$GEj9F$9$k$h$j$b>/$7Aa$$(B) $B$?$@$7!"(B $BDL>o$N%K%e!<%9%5!<%P$H$7$F$O!"B?J,$3$N@_Dj$OI,MW$,$J$$$@$m$&!#(B $B$b$7(B login $B8}:B(B (account) $B$,$"$C$?$H$7$F$b!"$=$l$H$OJL$K(B NNTP $B$N@\B3$r(B $B;H$C$F$=$N%5!<%P$KEj9F=PMh$kLu$@$+$i!"(B inews $B$K(B setgid $B$7$F!"<+J,$N5!3#$N%=%1%C%H$r;H$C$FEj9F$9$kI,MW$O$J$$(B $B$O$:$G$"$k!#(B INN 2.2.3 $B0JA0$O!"$3$l$,@_Dj$5$l$F$$$k$3$H$,I8=`$G$"$C$?!#(B
A suggested set of options, provided you have the necessary software installed, is $BA*Br$H$7$F$O!"I,MW$J(B software $B$,@_CV$5$l$F$$$k$H$7$F!"(B $B
"./configure --with-perl".

make / make install

If the configure program runs successfully, then you are ready to build the distribution. From the root of the INN source tree, type: ./configure $B$,$&$^$/=*N;$7$?$i!"(BINN source $B$N0lHV>e$G(B
make
Again, please note that for SCO 5.0.4, you need to edit the config/config.data file to delete the references to syslog.3 syslog.c and syslog.o before running the make command.

At this point you can step away from the computer for a little while and have a quick snack while INN compiles. On a decently fast system it should only take five or ten minutes at the most to build.

$B$HF~NO$9$k!#(BSCO 5.0.4 $B$N>l9g$K$O(B config/config.data $B$NCf$N(B syslog.3 syslog.c syslog.o $B$r;2>H$7$F$$ItJ,$r:o=|$9$kI,MW$,$"$k!#(B

$B5!3#$K$h$C$F$O!"$3$3$G$+$J$j$N;~4V$,$+$+$k$b$N$b$"$k!#(B $B7Z?)$J$I$N;~4V$,$H$l$k$+$bCN$l$J$$!#(B $B:G6a$N9bB.$J5!3#$J$i(B 5 - 10 $BJ,$G=*N;$9$k$b$N$b$"$k!#(B

Once the build has completed successfully, you are ready to install INN into its final home. Type:

$BAHN)$F$,$&$^$/=*N;$7$?$H$$$&$3$H$O(B $B:G=*E*$J0LCV$K@_CV=PMh$k=`Hw$,=PMh$?$H$$$&$3$H$K$J$k!#(B $B$=$N;~$K$O
make install
This will install INN under the install directory (/usr/local/news, unless you specified something else to the configure script.) You are now ready for the really fun part: configuring your copy of INN! $B$3$&$9$k$H!"(B $BFC$K;XDj$r$7$F$$$J$$8B$j(B /usr/local/news $B$K@_CV$5$l$k!#(B $B Welcome | Supported | Required | Unpack | Sto. Format | install | config | ( inn.conf | newsfeeds | incoming.conf | cycbuff.conf | storage.conf | overview.ctl | expire.ctl | nnrp.access ) | spool(CNFS) | db | news.daily | starting
Configuring INN
From this point on we will assume that you have set up the news user on your system as suggested in the Installation section above so that the root of the INN installation on your system is accessible as "~news/".

All of INN's configuration files are located in the ~news/etc directory. Unless noted otherwise, any files referred to below are in this directory.

$B$3$N;~E@$G!">e5-$K=q$$$F$"$C$?$h$&$K!"(B news $B$H$$$&(B userid $B$,@_Dj$5$l$F$$$F!"(B INN $B$N@_CV$O(B ~news/ $B$N2<$K$"$k$H2>Dj$7$FOC$r?J$a$k!#(B

$B$7$?$,$C$F!"A4$F$N(B INN $B$N9=@.$r7h$a$kIh$O(B ~news/etc $B$N(B directory $B$K$"$k$H$$$&$3$H$K$J$k!#(B $B0J2A0$O$3$3$K$"$k$b$N$H9M$($F8F$V$3$H$K$9$k!#(B

Before we begin, it is worth mentioning the wildmat pattern matching syntax used in many configuration files. These are simple wildcard matches using the asterisk ("*") as the wildcard character, much like the simple wildcard expansion used by Unix shells (but unlike Unix shells, you cannot do full regular expressions; only the asterisk is supported).

wildmat

$B@h$K?J$`A0$K!"(B $B@_Dj$K2?2s$b;H$o$l$k!V(Bwildmat $B$N%Q%?!<%s0lCW!W$NJ8K!$K$D$$$F@bL@$7$F$*$/!#(B $B$3$l$i$O!"(B $BC1=c$J%"%9%?%j%9%/(B(*)$B$r;H$C$?G$0UJ8;z0lCW$G!"(B Unix shell $B$G;H$o$l$F$$$k$b$N$HNI$/;w$F$$$k!#$?$@(B Unix Shell $B$N$b$N$H0c$&$3$H$O!"%"%9%?%j%9%/$@$1$,;H$($k$H$$$&$3$H$G$"$k!#(B
In many cases, wildmat patterns can be specified in a comma-separated list to indicate a list of newsgroups. When used in this fashion, each pattern is checked in turn to see if it matches, and the last pattern in the line that matches the group name is used. Patterns beginning with "!" mean to exclude groups matching that pattern. For example: $BB?$/$N>l9g!"(Bwildmat $B%Q%?!<%s$O!"(B $B%K%e!<%9%0%k!<%W$N0lMw$r;XDj$9$k;~$K(B $B%+%s%^$G6h@Z$i$l$?L>A0$NJB$S$H$7$F;H$o$l$k!#(B $B$=$N$h$&$J>l9g!"(B $B0l$D$E$D!"=g$K0lCW$9$k$+$I$&$+$rD4$Y!"(B $B:G8e$K0lCW$7$?9T$N%K%e!<%9%0%k!<%WL>(B $B$,;H$o$l$k!#(B ! $B$H$$$&;z$O5U$KM_$7$/$J$$$b$N$r;XDj$9$k;~$K;H$o$l$k!#(B $BNc$($P *, !comp.*, comp.os.*
In this case, we're saying we match everything ("*"), except that we don't match anything under comp ("!comp.*"), unless it is actually under the comp.os hierarchy ("comp.os.*"). This is because non-comp groups will match only the first pattern (so we want them), comp.os groups will match all three patterns (so we want them too, because the third pattern counts in this case), and all other comp groups will match the first and second patterns and will be excluded by the second pattern. $B>e$N>l9g!":G=i$K(B * $B$H=q$$$F!"A4$F$K0lCW$5$;$k!#(B
$Be$G!"99$K!"(B
$B$$$d!"$G$b(B comp.os.* $B$OI,MW!#$H$$$&$h$&$KFI$`!#(B
comp.* $B0J30$N%0%k!<%W$O!":G=i$N(B * $B$@$1$K0lCW$9$k(B ($B$3$l$i$N%K%e!<%9!&%0%k!<%W$OI,MW$H$$$&$3$H$K$J$k(B)$B!#(B comp.os $B$O$3$N;0$D$N$I$l$K$b0lCW$7$F$$$k(B($B$=$&$7$F!"$3$l$bI,MW(B $B$H$$$&0UL#$K$J$k!#(B $B;0$DL\$G0lCW$7$F$$$k$+$i(B)$B!#(B comp $B$N(B os $B0J30$N$b$N$O0l$DL\$HFs$DL\$NN>J}$K0lCW$7$F$$$k$,!"(B $B8e$NJ}$OH?BP$K(B ! $B$,IU$$$F$$$k$N$G!"=|30$9$k!#$H$J$k!#(B
In most INN configuration files, lines beginning with a "#" symbol are considered comments and are ignored. Any deviations from this practice will be noted in the description for that particular file.

$BCm $BKX$s$I$N(B INN $B$N@_DjIh$G$O!"(B# $B$G;O$^$k9T$OCml9g$K$O!"8DJL$K@bL@$r2C$($k!#(B

Welcome | Supported | Required | Unpack | Sto. Format | install | config | ( inn.conf | newsfeeds | incoming.conf | cycbuff.conf | storage.conf | overview.ctl | expire.ctl | nnrp.access ) | spool(CNFS) | db | news.daily | starting
1. inn.conf (REQUIRED)
The first, and most important file is inn.conf. This file is organized as a series of parameter-value pairs, one per line. The parameter is first, followed by a colon and one or more whitespace characters and the value itself. For some parameters the value is a string or a number; for others it is "yes" or "no." $B:G=i$N!"0lHVBg@Z$J@_DjIh$O(B inn.conf $B$G$"$k!#(B $B!VJQ?tL>(B $B$H$=$NCM!W$r0l9T$K0lAH$:$D=q$$$F9T$/!#JQ?tL>$r:8$K=q$-!"(B $B%3%m%s(B(:)$B$G6h@Z$C$F!"0l$D$+$=$l0J>e$N6uGrJ8;z$r=q$$$F$+$iCM$r=q$/!#(B $BCM$OJ8;z$N$3$H$b$"$k$7!"?t;z$N$3$H$b$"$k!#(B $B$^$?>l9g$K$h$C$F$O(B yes $B$+(B no $B$H=q$/!#(B

inn.conf

The inn.conf file contains dozens of changeable parameters, but only a few really need to be edited during normal operation: inn.conf $B$O?tB?$/$N@_Dj9`L\$,$"$k!#$7$+$7DL>o$N1?MQ$G$O!"(B $Borganization Set to the name of your organization as you want it to appear in the Organization: header of all local posts. This will be overridden by the value of the ORGANIZATION environment variable (if it exists). If neither this parameter nor the environment variable or set then no Organization: header will be added. $B5-;v8+=P$7$N(B Organization: $B9T$K8=$l$kFbMF$r5-=R$9$k!#(B $B4D6-JQ?t$N(B ORGANIZATION $B$G>e=q$-=PMh$k!#$b$7$3$l$iN>l9g!"(BOrganization: $B9T<+BN$,5-;v$K8=$l$J$$!#(B
pathhost This is the name of your news server as you wish it to appear in the Path header of all postings which travel through your server (this includes local posts and incoming posts that you forward out to other sites). If no pathhost is specified then the FQDN of the machine will be used instead. Path: $B8+=P$79T$KESCf7PO)%K%e!<%9%5!<%PL>!&Ej9F5!3#L>$,=q$+$l$k$,!"(B $B$=$3$K!"$3$N%5!<%P$NL>A0$,2?$H$$$&J8;zNs$G8=$l$k$+@_Dj$9$k!#(B $B$b$7@_Dj$,$J$$>l9g!"(BFQDN (Fully Quallified Domain Name) = $BD9$$L>A0$,;H$o$l$k!#(B
domain Sets the domain name for your server. Normally this is determined automatically by INN, but in some cases it is necessary to set it manually. For example, if you are running NIS on a SunOS system -and- your hostnames are not fully-qualified (ie, your systems are named xxxx instead of xxxx.domain.com) then you will need to use this option to set your domain name manually. If in doubt, leave this option commented out or remove it completely. $B$3$N5!3#$N%I%a%$%sL>$r@_Dj$9$k!#(B$BDL>o(B INN $B$,<+F0E*$K@_Dj$9$k(B$B!#(B $B$7$+$7l9g$b$"$k!#(B $BNc$($P!"(BSunOS $B$N(B NIS $B$r;H$C$F$$$k;~$G!"5!3#$NL>A0(B(hostname) $B$,(B FQDN $B$K$J$C$F$$$J$$;~(B ($B$9$J$o$A!"(Byyy.xxxx.co.jp $B$G$J$/(B yyy $B$N;~(B)$B!#(B $BNI$/J,$i$J$$;~$K$O!"CmC$7$F$7$^$&$N$b0l$D$NJ}K!!#(B
complaints If present this address is used to add an X-Complaints-To: header to all local posts. The usual value would be something like "[email protected]" or "[email protected]". If not specified then the newsmaster email address will be used. $B$3$NJQ?t$r@_Dj$9$k$H!"Ej9F$rl9g!"(B $B8+=P$7$N(B X-Complaints-To: $B$K@_Dj$5$l$k!#DL>o!"([email protected] $B$H$+(B [email protected] $B$H@_Dj$9$k!#(B $B$b$7$3$N@_Dj$,$J$$>l9g$K$O!"(Bnewsmaster $B$N(B Email $B08@h$,;H$o$l$k!#(B
allownewnews If set to "yes" then INN will support the NEWNEWS command for news readers. This will really kill your server performance and it is strongly suggested that you set this to "no". yes $B$H$7$?>l9g!"(B($BFI=q7O(B NNTP$B$N(B) NEWNEWS $BA`:n$,;H$($k$h$&$K$J$k!#(B $B $B$h$[$I$N$3$H$,$J$$8B$j(B no $B$H$7$F$*$/$3$H$r4+$a$k!#(B
status timer Determines how often status and timer updates are written to the log files. The value is specified in seconds with a value of 0 disabling logging. The suggested value is 300 seconds (5 minutes.) status ($B>u67(B) timer ($B;~7W78(B) $B$r$I$N$/$i$$$NIQEY$G5-O?$K:N$k$+$r@_Dj$9$k!#(B $BC10L$OIC$G!"(B0 $B$H$9$k$H!"5-O?$O:N$i$J$$!#(B $BDL>o(B 300 $BIC(B $B!"$D$^$j8^J,4V3V$/$i$$$,NI$$!#(B
storageapi Set to "yes" if articles should be stored using the Storage Manager API. You must set this to "no" if you are using the traditional article storage method or "yes" if you are using timehash or cnfs. See the section "Choosing an Article Storage Format" for more information. yes $B$H$9$k$H!"5-;v$r(B Storage Manager API $B$NJ}K!$GJ]B8$9$k;XDj$H$J$k!#(B $B5-;v$NJ]B87A<0$H$7$F!"(B traditional $B$rA*$s$@>l9g$K$O(B no $B$H$7$F$*$/!#(B timehash $B$H(B cnfs $B$N;XDj$N>l9g$K$O(B yes $B$H$9$k!#(B $B5-;v$NJ]B8J}K!(B$B$N9`L\$r;2>H$N$3$H!#(B
extendeddbz This is only used if you did not configure INN for tagged hash and you are using the storage API. If set to "yes", then overview offset information for articles is stored in the DBZ history hash file as well as in the history text file. This will make the hash file three times larger, but should increase performance for news readers when they retrieve article overview information. If you don't mind using 200-300 MB of extra space for your history database and memory then you should set this to "yes". tagged hash $B$N@_DjL5$G!"(Bstorage API $B$r;H$C$F$$$k>l9g$K$N$_0UL#$,$"$k!#(B yes $B$H$9$k$H!"5-;v$K$D$$$F!"$=$N(B overview $B$N>pJs$,!"(B history $BIh$NJ8;z7A<0$N$b$N$H!"(BDBZ $B7A<0$NN>J}$K5-O?$5$l$k!#(B $B$3$N@_Dj(B $B$r$9$k$H(B DBZ $B$NJ}$O;0G\$/$i$$Bg$-$/$J$C$F$7$^$&!#$7$+$7FI=q7O(B (News Reader) $B$,(B overview $B>pJs$re$k!#(B $B$b$7(B history $BIh$N$?$a$K(B disk $B$H5-21$K(B 200-300 MB $B$NM>M5$,$"$k$J$i!"(B $B$3$N@_Dj$r(B yes $B$H$9$k$Y$-$G$"$k!#(B
nnrpdoverstats If set to "yes" then nnrpd will log statistics about how much time was spent during the various stages of reading article overview information. Not terribly useful unless you are trying to track down news reader performance problems. yes $B$H@_Dj$9$k$H(B nnrpd ($BFI=q7O$NAj/$7JQ$j!"(B $B5-;v$N(B overview $B>pJs$r$B$I$N$/$i$$$N;~4V$,$+$+$C$F$$$k$+$r5-O?$9$k(B $B$h$&$K$J$k!#(B $B$?$@$7(B $BFI=q7O$N@-G=$KLdBj$,$"$C$F2?$+D4$Y$?$$$H$$$&;~0J30(B $B$KLrN)$D$3$H$O>/$J$$!#(B
hiscachesize The size in kilobytes to use for caching recently used history file entries. Setting this to 0 disables history caching. History caching can greatly increase the number of articles per second that your server is capable of processing. A value of 16384 (16 MB) is a good choice if you can spare the RAM. history $BIh$N$&$A!":G6a;H$C$?9T$r0l;~E*$K21$($F$*$/$?$a$N(B cache $B$NBg$-$5(B $B$r(B kB ($B%-%m%P%$%H(B)$B$G;XDj$9$k!#(B $B$3$N(B cache $B$K$h$C$F!"0lICEv$j$K=hM}=PMh$k5-;v$N?t$,B?$/$J$k!#(B $B$b$7M5$,$"$k$J$i!"(B 16384 ($B$D$^$j(B 16MBytes) $B$H$$$&(B $B;XDj$ONI$$A*Br$G$"$k!#(B
overviewmmap Overview data is mmaped and reading overview would be faster with this. Note that on some systems (NextStep and IRIX-6.5 are reported so far) it would be worse than ever. For those systems overviewmmap should be "no". yes $B$H;XDj$9$k$H(B overview $B>pJs$r5-21>e$K(B $B;}$D(B(MMAP, Memory Map)$B!#(B $B$?$@$7!"5!l9g$K$O(B no $B$H$9$kI,MW$,$"$k!#(B
usecontrolchan All control messages except for the cancel will never processed by external program fork'ed by innd. To reduce excessive load when many control messages arrive in a short time, this is useful and recommended. Controlchan will log its error to syslog, if Sys::Syslog is available. Otherwise it logs to errlog. To enale Sys::Syslog, you need to do following: Cancel Message $B0J30$N%3%s%H%m!<%k%a%C%;!<%8$K$D$$$F!"(Binnd $B$,30It%W(B $B%m%0%i%`$N8F=P$7$r9T$J$&$3$H$rM^;_$9$k!#(B $BC;$$;~4V$N4V$K!"(B $B?tB?$/$N%3%s%H%m!<%k%a%C%;!<%8$,Aw$i$l$FMh$k$h$&$J;~(B $B$KIi2Y$r2<$2$?$$$h$&$J>l9g$KM-8z$G$"$j!"$*4+$a$G$"$k!#(B $B$3$N@_Dj$r$9$k$H!"(B $B$b$7(B (Perl $B$N(B) Sys::Syslog $B$,MxMQ=PMh$k>l9g$G$"$k$J$i!"(B $BLdBj$,$"$k;~$K$O(B syslog $B$K5-O?$,Aw$i$l$k!#(B $B$=$&$G$J$$;~$K$O!"(Berrlog $BIh$K5-O?$5$l$k!#(B $B$3$N(B Sys::Syslog $B$rM-8z$K$9$k$K$O
                          # cd /usr/include
                          # h2ph *
                          # cd /usr/include/sys
                          # h2ph *
logipaddr Set false, if controlchan is used and ihave/sendme setup is required. Or ihave and sendme cannot get correct name, then the messages are incorrect. $B>e5-(B controlchan $B$,;H$o$l$F$$$F!"(Bihave/sendme $B$N@_Dj$,I,MW$J>l9g$K!"(B false $B$K@_Dj$9$k!#$=$&$7$J$$$H!"(Bihave $B$H(B sendme $B$,@5$7$$(B($B5!3#$N(B)$BL>(B $BA0$rF@$i$l$:!"%3%s%H%m!<%k%a%C%;!<%8$NFbMF$,@5$7$/2rinnflags (new to 2.2.2) This allows you pass flags to the INN server process when it starts up. If you use the `crosspost' feed (which is recommended) then you must set this to `-L'. INN $B$r5/F0$9$k;~$NA*Br(B (flags) $B$r@_Dj=PMh$k!#(B $B0lHL$K(B crosspost $BE>Aw$rMxMQ$9$k$3$H$,?d>)$5$l$k$,!"$=$N;~$K$O!"(B $B$3$N(B innflags $B@_Dj$r(B -L $B$H$9$k$3$H$,I,MW$K$J$k!#(B
Welcome | Supported | Required | Unpack | Sto. Format | install | config | ( inn.conf | newsfeeds | incoming.conf | cycbuff.conf | storage.conf | overview.ctl | expire.ctl | nnrp.access ) | spool(CNFS) | db | news.daily | starting
2. newsfeeds (REQUIRED)
The newsfeeds file determines how incoming articles are redistributed to your peers and to other INN processes. The newsfeeds file is very versatile and contains dozens of options; we will touch on just the basics here. The newsfeeds(5) man page contains more detailed information. newsfeeds $B$O!"(B $BAw$i$l$FMh$?5-;v$rNY$N5!3#!"$"$k$$$O(B INN $B$NB>$N%W%m%;%9$K(B $B$I$&:FJ,G[$9$k$+$r7h$a$k$N$K;H$o$l$k!#(B newsfeeds $B$N5-=R$OBgJQ6/NO$G!"$$$/$D$b$NA*Br$,$"$k!#(B $B$3$3$G$O4pK\E*$J$3$H$@$1$K?($l$k!#>\$7$/$O!"(Bnewsfeeds(5) $B$N@bL@(B (man page) $B$r8+$FM_$7$$!#(B
The newsfeeds file is organized as a series of feed entries. Each feed entry is composed of four fields separated by colons. Entries may span multiple lines by using the backslash (\) to indicate that the next line is a continuation of the current line. newsfeeds $B$N9=@.$O!"(B $BE>Aw@_Dj9T(B $B$rI,MW$J?t$@$15-=R$9$k$H$$$&7A$K$J$C$F$$$k!#(B $B$=$l$>$l$NE>Aw@_Dj9T$O(B $B$5$i$K;M$D$N9`L\$r%3%m%s(B(:)$B$G$D$J$$$@7A$r$7$F$$$k!#(B $B9T$,D9$/$J$C$?>l9g$K$O9TKv$K%P%C%/%9%i%C%7%e(B (\) $B$r;H$C$F7QB39T$G(B $B$"$k$3$H$r<($;$k!#(B
The first field in an entry is the name of the feed. It must be unique, and for feeds to other news servers it is usually set to the actual hostname of the remote server (this makes things easier). The name can optionally be followed by a slash and an exclude list. If the feed name or any of the names in the exclude list appear in the Path line of an article, then that article will not be forwarded to the feed as it is assumed that it has passed through that site once already. The exclude list is useful when a news server's hostname is not the same as what it puts in the Path header of its articles, or when you don't want a feed to receive articles from a certain source. $B0l9`L\$O(B $BE>Aw@_Dj9T$NL>A0(B ($B<+J,$G7h$a$?L>A0$rIU$1$k(B)$B!#(B $BF1$8L>A0$OFsEY;H$($J$$!#(B $BB>$N5!3#$KE>Aw$9$k>l9g$K$O!"$3$NL>A0$H5!3#$NL>A0$rF1$8$K$9$k$N$,(B ($BA4$F$r4JC1$K$9$k$?$a$K$O(B)$BIaDL$G$"$k!#(B $B>l9g$K$h$C$F$O(B / $B$rIU$1$?8e$K!"!VGS=|0lMw!W(B$B$r=q$/$3$H$,=PMh$k!#(B $B$b$7Aw$i$l$FMh$?5-;v$N(B Path: $B$N9T$K!"(B $B$=$NGS=|0lMw$K=P$FMh$kL>A0$,F~$C$F$$$k;~$K$O!"(B $B$=$N5-;v$O!"4{$K$=$NL>A0$rDL$C$FMh$?$H9M$($i$l$k$N$G!"(B ($B$3$NE>Aw@_Dj$N9T$OE,MQ$5$l$:(B) $B$3$N9T$NE>Aw$O$*$3$J$o$l$J$$!#(B $B$3$NGS=|0lMw$O!"Nc$($P!"<+J,$N5!3#$NL>A0$H!"(BPath: $B8+=P$7$K=P$FMh$k(B $BL>A0$r0c$&$b$N$H$7$?;~$H$+!"$"$k$$$O!"$"$kFCDj$N7PO)(B($B5!3#L>(B)$B$rDL$C(B $B$FMh$k5-;v$OB>$KAw$j$?$/$J$$$H$$$C$?>l9g$KM-8z$G$"$k!#(B
The second field specifies a set of desired newsgroups and distribution lists, given as newsgroup-pattern/distribution-list. The distribution list is not described here; see the newsfeeds(5) man page for information. The newsgroup pattern is a wildmat-style pattern list as described above, with one minor addition: patterns beginning with "@" will cause any articles posted to groups matching that pattern to be dropped, even if they match patterns for groups that ARE wanted. Otherwise, articles that match both "want" and "don't want" patterns are sent. $BFs9`L\$O!"(B $B%K%e!<%9!&%0%k!<%W$NL>A0$HG[I[HO0O(B$B$r(B / $B$G6h@Z$C$F!"(B newsgroup-pattern/distribution-list $B$N$h$&$K;XDj$9$k!#(B $B8ewildmat $B0lCW$N7A<0(B$B$G=q$/!#(B $B$?$@$7!"(B $B$=$l$K2C$($F(B $B!V(B@ $B$G;O$^$k$b$N$O0lCW$;$:!"E>Aw$5$l$J$$!W5-=R$,=PMh$k!#(B $B%/%m%9%]%9%H$5$l$F$$$F$b!"(B @ $B$N8e$K=q$$$F$"$k%K%e!<%9%0%k!<%W$,F~$C$F$$$k$H!"(B $B$=$l$OE>Aw$7$J$$$H$$$&5qH]$r@_Dj=PMh$k!#(B
The third field is a comma-separated list of flags that determine both the type of feed entry and sets certain parameters for the entry. See the newsfeeds(5) man page for information on the flag settings. $B;09`L\$O!"E>Aw@_Dj9T$N(B $B7?$H0z?t(B$B$r(B $B%+%s%^$G6h@Z$C$F5-=R$9$k!#(B $B$I$N$h$&$J7?(B (flag) $B$,;XDj=PMh$k$+$O(B newsfeeds $B$N(B man page $B$K>\$7$$!#(B
The fourth field is a multi-purpose parameter. Its usage depends on the settings of the flags in the third field. Again, see the man pages for more information. $B;M9`L\$O!"$$$m$$$m$JL\E*$K;H$o$l$k!#(B $B$3$l$OA0;09`L\$N0z?t$N5-=R$K$h$C$FJQ$k!#(B $B$3$l$b$/$o$7$/$O(B newsfeeds(5) $B$r8+$FM_$7$$!#(B
Now that you have a rough idea of the file layout, we'll begin to add the actual feed entries. First we'll set up the special ME entry. This entry is required and serves two purposes. First, the newsgroup pattern specified for this entry is prepended to the newsgroup list of all other feeds; second, the ME entry's distribution pattern determines what distributions are accepted from remote sites by your server. The default ME entry in the newsfeeds file probably won't suit your tastes; a good starting point would be $B$3$l$GBgBN$NMM;R$,J,$C$?$H;W$&$N$G!"(B $B$B:G=i$K(B ME $B$G;O$^$kFCJL$J9T(B$B$r=q$/!#(B $B$3$l$OI,?\$G!"Fs$D$NL\E*$,$"$k!#(B $BL\E*$N(B $B0l$DL\(B$B$O!"(B $B$3$N(B ME $B$N9T$K=q$+$l$?%K%e!<%9!&%0%k!<%W$N0lMw$O!"(B $BA4$F$NB>$N(B $BE>Aw@_Dj$N%K%e!<%9!&%0%k!<%W$NMs$N(B $B:G=i$KIU$12C$($i$l$k(B $B$H$$$&$3$H$G$"$k!#(B $BFs$DL\(B$B$O!"(B ME $B9T$NG[I[HO0O$N;XDj$O!"B>$N5!3#$+$iE>Aw$5$l$FMh$k$b$N(B $B$N$&$A!"(B $B$I$N$h$&$JG[I[HO0O$r $B$H$$$&;XDj$K$J$k!#(B newsfeeds $BIh$N(B ME $B$N9T$N=i4|CM$H$7$F=q$+$l$F$$$k$b$N$O!"(B $BB?J,$*5$$K>$$5$J$$$N$G$O$J$$$+$H;W$&!#(B $B$*$9$9$a$H$7$F$O
a subscription pattern of "*,!junk,!local*" and a distribution list of "!local".
$B%K%e!<%9!&%0%k!<%W(B$BG[I[HO0O(B
*,!junk,!local*!local
This will mean that by default all sites will receive all groups except the junk group and groups in the local.* hierarchy, and that you will receive any distributions except those marked as "local" (any such articles are probably being leaked out by a misconfigured server). $B$3$&=q$$$F$*$/$H!"(B junk $B$H(B local $B0J30$NA4$F$N%K%e!<%9!&%0%k!<%W$G!"G[I[HO0O$H$7$F$O(B local $B0J30$r(B $B$NE>Aw@_Dj$N9T$N(B) $B=i4|CM$H=PMh$k!#(B local $B$H$$$&G[I[HO0O$O!"$b$7Aw$i$l$FMh$k$H$9$k$H!"2?$+$N@_Dj4V0c$$(B $B$G!"$b$l$FMh$F$$$k$H9M$($i$l$k$+$i$G$"$k!#(B
Next we'll set up special entries for the overchan, innfeed, controlchan(if you set 'usecontrolchan: true' in inn.conf) and (if you're not using cnfs or timehash) crosspost programs. There are already entries for these programs in the default newsfeeds file; you need only uncomment them and edit the pathnames to the programs to match your setup (there are two entries for overchan, one for use with the Storage Manager API and one for use without it; uncomment only the one matching your setup) . Assuming you installed INN under the default path of /usr/local/news then the appropriate feed entries would look like this: $B
  • overchan
  • innfeed
  • controlchan ($B$3$l$O(B inn.conf $B$N(B usecontrolchan $B$r@_Dj$7$?>l9g(B)
  • crosspost (cnfs, timehash $B$r;H$C$F$$$J$$>l9g(B) $B$J$I$N$?$a$NFCJL$J9T$N@_Dj$,$"$k!#(B $B$3$l$i$N@_Dj$O!"=i4|CM$H$7$F(B($BG[I[$N(B newsfeeds $B$NCf$K(B) $BF~$C$F$$$k!#(B $BCm$rI,MW$K@5$7$/9g$;$k$3$H$,I,MW$J$@$1$G$"$k!#(B overchan $B$K$D$$$F$O!"Fs$D$N9T(B (Storage Manager API $B$r;H$&;~$H;H$o$J$$;~$N$b$N(B)$B$,$"$k!#(B $B$b$7(B /usr/local/news $B$K@_CV$7$F$$$k$H$9$k$H!"$3$l$i$O
  • For traditional storage method: $B!V=>MhDL$j$N5-;v$NJ]B8J}K!!W$rA*$s$G$$$k>l9g(B
            overview!:*:Tc,WO:/usr/local/news/bin/overchan
    
            crosspost:*:Tc,Ap,WR:/usr/local/news/bin/crosspost
    
            innfeed!:\
                    !*\
                    :Tc,Wnm*,S16384:/usr/local/news/bin/startinnfeed -y
    
    For cnfs or timehash storage method: cnfs $B$^$?$O(B timehash $B$rA*$s$G$$$k>l9g(B
            overview!:*:Tc,Ao,WhR:/usr/local/news/bin/overchan
    
            innfeed!:\
                    !*\
                    :Tc,Wnm*,S16384:/usr/local/news/bin/startinnfeed -y
    
    If the server will not be supporting readers (a transit news server only), it's not necessary to run overchan. If you do that, however, and you're using CNFS or timehash, be sure to leave overview.ctl empty so that INN doesn't generate overview information either. See the information about overview.ctl below. Finally, you need to add entries for any actual sites to which you will be feeding articles. They will all have the same general format: $B$b$7!"%5!<%P!<$,!"5-;v$rFI$`5!G=$rDs6!$;$:!"(B $BE>Aw$@$1$K;H$o$l$F$$$k>l9g$K$O(B overchan $B$rF0$+$9I,MW$O$J$$!#(B $B$7$+$7$=$&$G$J$/$F!"$7$+$b(B cnfs $B$+(B timehash $B$r;H$C$F$$$k;~$K$O!"(B overview.ctl $B$r6u$K$7$F$*$$$F!"(B INN $B$,(B overview $B>pJs$r@8@.$7$J$$$h$&$K$9$kI,MW$,$"$k!#(B overview.ctl $B$K$D$$$F$O8e$G@bL@$9$k!#(B $B:G8e$K!"A4$F$N5-;v$NE>Aw@h0l$D$E$D$K(B $B$D$$$F!"
            my-feed-site.domain.com/exclude-list\
                    :newsgroup-list\
                    :Tm:innfeed!
    
    Set the feed name to the name of the remote site, and if the site uses a name other than its host name for Path headers then put that in the exclude-list (if your exclude list is empty, leave out the "/" after the site name as well). The newsgroup list can be left empty if the default newsgroup pattern from your ME entry is sufficient; otherwise, set the newsgroup pattern appropriately. The last line should not be modified. $B>e5-$K$D$$$F@bL@$9$k$H!"(B feed name (/ $B$N:8B&(B)$B$ONY$N5!3#$NL>A0!#(B $B$b$7$=$N5!3#$,(B Path: $B8+=P9T$H0c$&L>A0$J$i!"$=$N(B Path: $B$K8=$o$l$kL>(B $BA0$r!VGS=|0lMw!W(B(/ $B$N1&B&(B)$B$K=q$/!#!VGS=|0lMw!W$K=q$/$b$N$,$J$$;~$K(B $B$O(B / $B$OI,MW$,$J$$!#(B $B%K%e!<%9!&%0%k!<%W0lMw$,!"$b$7!"(BME $B9T$G@_Dj$7$?=i4|CM$HF1$8$G$h$$(B $B$J$i!"$=$NItJ,$O6uGr$K$7$F$*$$$F$h$$!#(B $B$=$&$G$J$$;~$K$OI,MW$K1~$8$F5-=R$9$k!#0lHV:G8e$N9T$OJQ99$7$F$O$$$1$J$$(B
    As for controlchan, this is useful and strongly recommended to setup. Processing by controlchan can reduce excessive load if many control messages arrive in a short time. To enable controlchan: controlchan $B$K$D$$$F$O!"$H$F$bLr$KN)$DFC$K$*$9$9$a$N@_Dj$G$"$k!#(B controlshan $B$rMQ$$$?=hM}$O!"FC$KC;$$;~4V$K%3%s%H%m!<%k!&%a%C%;!<%8(B $B$,BgNL$KMh$k>l9g$KM-8z$G$"$k!#$3$l$rM-8z$K$9$k$N$O
             controlchan!\
                     :!*,control,control.*,!control.cancel\
                     :Tc,Wnsm:/usr/local/news/bin/controlchan
    
    Welcome | Supported | Required | Unpack | Sto. Format | install | config | ( inn.conf | newsfeeds | incoming.conf | cycbuff.conf | storage.conf | overview.ctl | expire.ctl | nnrp.access ) | spool(CNFS) | db | news.daily | starting
    3. incoming.conf (REQUIRED)
    The incoming.conf file describes what machines are allowed to connect to your host to feed articles. In previous versions of INN a different file (hosts.nntp) was used to do some of what incoming.conf can do. You can get started for a single feed by adding an entry like this: incoming.conf $B$O!"B>$N5!3#$+$i$NE>Aw$N5v2D!&IT5v2D$r@_Dj$9$k!#(B $B0JA0(B $B$N(B INN $B$NHG$G$O(B hosts.nntp $B$G@_Dj$7$F$$$?FbMF$G$"$k!#(B
    $B
             peer my-feed-site.domain.com {
             }
    
    ..assuming that you will be receiving articles from my-feed-site.domain.com. Note that this doesn't cause remote sites to start feeding you news - it merely allows them to do so if they so choose. See the incoming.conf man page for full details. $B0J>e$N9T$G$O!"(Bmy-feed-site.domain.com $B$+$i$NE>Aw$,$"$k$H$$$&>l9g$G$"$k!#(B $BCm0U$7$F$$$?$@$-$?$$$N$K$O!"$3$l$O5v2D$N@_Dj$G$"$C$F!"(B $BE>Aw$=$N$b$N$N@_Dj$G$O$J$$$H$$$&$3$H$G$"$k!#(B
    $B>\$7$/$O(B incoming.conf(5) $B$N@bL@$rFI$s$GM_$7$$!#(B
    Welcome | Supported | Required | Unpack | Sto. Format | install | config | ( inn.conf | newsfeeds | incoming.conf | cycbuff.conf | storage.conf | overview.ctl | expire.ctl | nnrp.access ) | spool(CNFS) | db | news.daily | starting
    4. cycbuff.conf (Required only if using the CNFS article storage method)
    CNFS stores articles in logical objects called "metacycbuffs." Each of the metacycbuffs is in turn composed of one or more physical buffers called "cycbuffs." As articles are written to the metacycbuff each article is written to the next cycbuff in the list in a round-robin fashion. This is so that you can distribute the individual cycbuffs across multiple physical disks and balance the load between them.

    There are two ways to create your cycbuffs:

    CNFS $B$O5-;v$r(B metacycbuffs ($B6E(B)$B4D>uNN0h(B $B$H8F$VO@M}E*$J$l$N(B($B6E(B)$B4D>uNN0h(B $B$O0l$D$+J#?t$N(B cycbuffs $B4D>uNN0h(B $B$+$i@.$C$F$$$k!#(B $B5-;v$,(B metacycbuff $B$K=q$+$l$k$H$$$&$3$H$O!"$=$l$>$l$N5-;v$O(B $B%i%&%s%I%m%S%sJ}<0$G(B($B0lMw$K$"$k(B)$B cycbuff $B$r:n$k$K$OFs$D$NJ}K!$,$"$k!#(B
    1. filesystem (partition)
    Use a raw disk partition (best). This will give you the most speed, but it required that your OS support mmap()'ing a block device. Solaris supports this, FreeBSD and Linux do not. Also on many PC- based Unixes it is difficult to create more than eight partitions, which severely limits your options. $B$3$A$i$NJ}$,:GNI$G$"$k$,!"0l$D$N(B disk $B6h2h$r$=$N$^$^;H$&J}K!$G(B $B$"$k!#(B $B$3$NJ}K!$G$O!"B.EY$,=P$k!#(B $B$?$@$7!"$=$l$K$O(B OS $B$G(B $B%V%m%C%/!&%G%P%$%9$G(B mmap() $B$,MxMQ=PMh$kI,MW$,$"$k!#(B Solaris $B$G$O;H$($k$,!"(BFreeBSD $B$H(B Linux $B$G$O;H$($J$$!#$^$?B?$/$N(B PC Unix $B$G$O(B 8 $B0J>e$N6h2h$r:n$k$3$H$,:$Fq$J$?$a!"$3$NJ}K!$r<+M3$K;H$&$3$H$r$5$^$?$2$F$$$k!#(B
    2. file itself
    Use a real file on a filesystem. This will be a bit slower than using a raw disk partition, but it should work on any Unix system. $BDL>o$NIh$r;H$&!#(B1. $B$NJ}K!$h$j$O>/$7$@$1CY$/$J$k$+$bCN$l$J$$$,!"(B $B$I$N$h$&$J(B Unix $B%7%9%F%`$G$bF0$/$O$:$G$"$k!#(B
    If you're having doubts, use option #2. $B$b$72?$+LdBj$d!"5?Ld$,$"$k$J$i(B 2. $B$NJ}$r;H$($P$$$$!#(B
    Now you need to decide on the sizes of your cycbuffs and metacycbuffs. You'll probably want to separate the heavy-traffic groups (alt.binaries.* and maybe even the rest of alt.*) into their own metacycbuff so that they don't overrun the server and push out articles on the more useful groups. If you have any local groups that you want to stay around for a while then you should put them in their own metacycbuff as well. $B$5$F$N(B alt.* $B$H8@$C$?!"N.NL$,?R>o$G$J$$%0%k!<%W(B $B$J$I$OJL$N(B metacycbuff $B$r3dEv$F$F!"(B $BB>$NM-MQ$J%K%e!<%9%0%k!<%W$rDI$$$d$i$l$F$7$^$o$J$$$h$&$K$9$k$H;W$&!#(B $B$"$k$$$O!"ItFb$N%K%e!<%9%0%k!<%W$rD94|$KC6$C$FJ]B8$7$h$&$H$9$k$h$&$J>l9g$K(B $BFHN)$N(B metacycbuff $B$r3dEv$F$F$*$3$&$H$9$k$H;W$&!#(B
    For each metacycbuff, you now need to determine how many cycbuffs will make up the metacycbuff, the size of those cycbuffs and where they will be stored. Some OSs do not support files larger than 2 GB which will force all of your cycbuffs to be < 2GB (even if they are stored on raw disk partitions). Linux is known to have this limitation, FreeBSD does not. If in doubt, keep your cycbuffs smaller than 2 GB. Also when laying out your cycbuffs you will want to try to arrange them across as many physical disks as possible (or use a striped disk array and put them all on that). $B0l$D!9!9$N(B metacycbuff $B$O!"(B $B$$$/$D$N(B cycbuff $B$G=PMh$F$$$k$+!"$=$l$>$l$NBg$-$5$O$$$/$i$+!"(B $B$=$&$7$F!"$=$l$i$re$NBg$-$5$NIh$r:n$l$J$$$+$bCN$l$J$$!#(B $B$=$N>l9g$K$OEvA3(B cycbuff $B$O(B 2GB $B0J2<$K$9$kI,MW$,$"$k!#(B $B$3$l$O(B $B>e5-(B 1. $B$N6h2hA4It$r3dEv$?>l9g$K$b$"$F$O$^$k!#(B Linux $B$O$3$N@)8B$,$"$k$H9M$($i$l$F$$$k$,(B FreeBSD $B$K$O$=$l$O$J$$!#(B $B$b$75?Ld$,$"$k$J$i!"(B2GB $B0J2<$K$7$F$*$/$N$bL5Fq$JJ}K!$G$"$k!#(B $B$=$&$7$F!"$b$&0l$D$N$*$9$9$a$O!"(B($B2DG=$J8B$j(B) cycbuff $B$rJ#?t$N
    For each cycbuff you will be creating, add a line to the cycbuff.conf file like the following: $B0l$D$N(B cycbuff $BKh$K(B cycbuff.conf $B$K
    cycbuff:BUFFNAME:/path/to/buffer:SIZE
    BUFFNAME must be unique and must be < 8 characters in length. Something simple like "BUFF00", "BUFF01", etc. is a decent choice. SIZE is the buffer size in kilobytes (1000000 KB is approximately one GB, so if you are trying to stay under 2 GB then cap your sizes at 2000000).

    Now, you need to tell INN how to group your cycbuffs into metacycbuffs. This is similar to creating cycbuff entries:

    BUFFNAME $B$K$O0l$D0l$D0c$C$?L>A0$rIU$1$k!#$^$?D9$5$O(B 8 $BJ8;z0JFb$K$9$k!#(B BUFF00, BUFF01 $B$J$I$H$$$&AG5$$b$J$$L>A0$r$D$1$k$N$b$N0l6=!#(B SIZE $B$O(B kbytes $BC10L$G;XDj$9$k!#(B1,000,000 kB $B$,Ls(B 1GB $B$@$+$i!"(B $B>e5-$N(B 2GB $B$NOC$K9g$o$;$l$P(B 2000000 $B$,>e8B$K$J$k!#(B

    $B$5$F

    metacycbuff:BUFFNAME:CYCBUFF,CYCBUFF,CYCBUFF
    BUFFNAME is the name of the metacycbuff, and like cycbuff names must be unique and <= 8 characters long. These should be a bit more meaningful than the cycbuff names since they will be used in other config files as well. Try to name them after what will be stored in them; for example if this metacycbuff will hold alt.binaries postings, then "BINARIES" would be a good choice. Finally, the last part of the name is a comma-separated list of all of the cycbuffs that should be used to build this metacycbuff. Each cycbuff should only appear in -one- metacycbuff line. $B$3$3$G!"(BBUFFNAME $B$O(B metacycbuff $B$NL>A0!#(B $B>e$HF1MM$K(B 8 $BJ8;z0JFb$NL>A0$rIU$1$k!#$?$@$7!"(B $B$3$NL>A0$OB>$N$H$3$m$G$b;2>H$5$l$k$+$i!"(B $B>/$7$O0UL#$N$"$kL>A0$K$7$F$*$$$?J}$,$$$$!#(B $B2?$rJ]B8$9$k$+$H$$$&$3$H$GL>A0$rIU$1$k$N$,IaDL$G$"$k!#(B $BNc$($P!"$b$7(B alt.binaries $B$rJ]B8$9$kNN0h$@$H$9$k$H(B BINARIES $B$H$9$k$N$b0l$D$NJ}K!$G$"$k!#(B $B$=$&$7$F!"1&C<$K$O%+%s%^6h@Z$G!"$3$N(B metacycbuff $B$r9=@.$9$k(B cycbuff $B$NL>A0$rJB$Y$F$*$/!#0l$D$N(B cycbuff $B$O!"$I$l$+0l$D$N(B metacycbuff $B$K$7$+;H$($J$$!#(B
    Welcome | Supported | Required | Unpack | Sto. Format | install | config | ( inn.conf | newsfeeds | incoming.conf | cycbuff.conf | storage.conf | overview.ctl | expire.ctl | nnrp.access ) | spool(CNFS) | db | news.daily | starting
    5. storage.conf (Required only if using the CNFS or timehash storage methods)
    The storage.conf file maps newsgroups into storage classes, which determine where and how the article is stored. This file has a very simple format; each line defines a storage class for articles. The first matching storage class is used to store the article; if no storage class matches then INN will reject that article. A storage class is defined as a grouped entry consisting of size, expires and other parameters: $B$3$3$G$O!"%K%e!<%9!&%0%k!<%W$H!"J]B8J,N`(B (storage class) $B$D$^$j5-;v$,!"(B $B$I$3$K!"$I$N$h$&$KJ]B8$5$l$k$+$r5-=R$9$k!#=q<0$O$-$o$a$F4JC1$G$"$k!#(B $B3F9T$K5-;v$K$D$$$F$NJ]B8J}<0$r=q$/$@$1$G$"$k!#(B ($B>e$+$i8+$F$$$C$F(B)$B:G=i$K0lCW$7$?;XDj$,:NMQ$5$l$k!#(B $B$b$70lCW$9$k;XDj$,$J$$$H!"5-;v$r5qH]$7$F$7$^$&!#(B $BJ]B8J}<0$H$O!"5-;v$NBg$-$5!"J]B84|4V!"$=$NB>$N?tCM$+$i$J$C$F$$$k!#(B
            methodname:newsgroup pattern:storage class #:minsize:maxsize:options
            method  {
                newsgroups: 
                class: 
                size: [,]
                expires: [,]
                options: 
    
    The grouped, "methodname", is the name of the storage method used to store articles in this storage class. It should be set to "cnfs", "timehash", or the special storage method "trash" (which accepts the article but does not actually store it anywhere). Note that "traditional" is not a valid method name; the Storage Manager does not support traditional article storage, and if you are using traditional method then you should skip to the next section. $B$3$3$G(B methodname $B$O$3$3$G;XDj$7$F$$$kJ]B8J}N`$NL>A0$G$"$k!#(B $B$3$3$K$O(B cnfs, timehash, $B$^$?$OFCJL$J(B trash $B$H=q$/!#(Btrash $B$H=q$$$?>l9g!"(B $B0l1~5-;v$O
    The first parameter is a wildmat pattern in the same format used by the newsfeeds file, and determines what newsgroups are accepted by this storage class. $BBh0l$N0z?t$O(B newsfeeds $B$G@_Dj$9$k;~$HF1$8(B wildmat $B$N=q<0$G!"$I$N(B $B%K%e!<%9%0%k!<%W$r$3$3$KJ]B8$9$k$+$r=q$/(B
    The second parameter is a unique number identifying this storage class and should be between 0 and 255. It is used primarily to control article expiration. $BBhFs0z?t$O(B $BB>$H0[$C$?(B 0 $B$H(B 255 $B$N4V$N?t;z$rA*$s$G=q$$$F$*$/!#(B $B$3$l$OC5n$9$k;~$K;H$&!#J]B8J,N`HV9f(B (storage class ID ) $B$G$"$k!#(B
    The third parameter can be used to accept only articles in a certain size range into this storage class. A maxsize of zero means no upper limit (and of course a minsize of 0 would mean no lower limit, because an article is always great than zero bytes long.) $BBh;00z?t$O(B $B$3$3$KJ]B8$9$k5-;v$NBg$-$5$NHO0O$r;XDj$9$k!#(B $B:GBgCM$H$7$F(B 0 $B$r;XDj$9$k$H!">e8B$J$7!#:G>.CM$H$7$F(B 0 $B$r=q$1$P!"EvA3(B $B2<8BL5$H$$$&$3$H$K$J$k!#(B
    The fourth parameter can be used to accept only articles in a certain Expire range into this storage class. A maxtime of zero means no upper limit (and a mintime of non-zero would mean article never falls in this class, if it includes Expires header.) $BBh;M0z?t$O(B $B$I$NM-8z4|4V$r;}$D5-;v$re8BL5$G$"$j!"$^$?(B $B:G>.CM$K(B 0 $B0J30$r@_Dj$9$k$H!"(B $B$b$7M-8z4|8B(B (Expire header) $B$,@_Dj$5$l$F$$$k5-;v$OA4$F=|30$9$k(B $B$H$$$&0UL#$K$J$k!#(B
    The fifth parameter is the options parameter. Currently only CNFS uses this field; it should contain the name of the metacycbuff used to store articles in this storage class. $BBh8^0z?t$OA*Br5-F~$G$"$k!#(B $B$$$^$N$H$3$m(B CNFS $BJ]B8J}K!$rA*$s$@>l9g$K$@$1M-8z$G$"$k!#(B $B$3$3$G@_Dj$7$F$$$kJ]B8J,N`MQ$N(B metacycbuff $B$NL>A0$r=q$/!#(B
    For CNFS users, create one storage class for each metacycbuff that you have defined, listing what newsgroups are to be stored in that buffer. CNFS $B$r;H$C$F$$$k>l9g!"(B metacycbuff $BKh$K0l$D$NJ]B8J,N`$r5-=R$7!"$=$NCf$K%K%e!<%9!&%0%k!<%W$N(B $BL>A0$r=q$/$3$H$K$J$k!#(B
    For timehash, the storage class IDs are used to store articles in separate directory trees so that different expiration policies can be applied to each storage class. You will need to divide up your newsgroups based on how long you want to retain articles in those groups, and create a storage class for each such collection of newsgroups. Make note of the storage class IDs you assign as they will be needed when you edit the expire.ctl file a bit later. timehash $B$r;H$&>l9g!"(B $BJ]B8J}N`HV9f(B (storage class ID) $B$r;H$C$F!"(B $B5-;v$r$I$N(B directory $B$KJ]B8$9$k$+$r;XDj$9$k!#(B $B$=$&$7$F!"$=$l$K$h$C$F>C5nJ}K!(B($BJ]B84|4V(B)$B$N@_Dj$r9T$&!#(B $B%K%e!<%9!&%0%k!<%W$r!"J]B84|4VJL$KJ,N`$7!"(B $B$=$NJ,N`$K4p$E$$$FJ]B8J}N`$r@_Dj$9$k!#(B $B8e$[$I(B expire.ctl $B$GJ]B84|4V$r@_Dj$9$k$,!"$=$N;~$K$O!">e5-BhFs0z?t$G(B $B;XDj$7$?J]B8J,N`HV9f(B (storage class ID) $B$r;H$&!#(B
    Welcome | Supported | Required | Unpack | Sto. Format | install | config | ( inn.conf | newsfeeds | incoming.conf | cycbuff.conf | storage.conf | overview.ctl | expire.ctl | nnrp.access ) | spool(CNFS) | db | news.daily | starting
    6. overview.ctl (Required only if using the CNFS or timehash storage methods)
    The overview.ctl file determines where article overview information will be stored for each newsgroup. Overview is stored in one more storage files identified by unique numbers between 0 and 254. Each line consists of the storage file number followed by a single colon and a wildmat pattern list of which newsgroups are to be stored in that file. As with storage.conf, the first matching line is used. overview.ctl $B$O!"(B $B$=$l$>$l$N%K%e!<%9!&%0%k!<%WKh$K!"(Boverview $B>pJs$r$I$3$KJ]B8$9$k$+(B $B$r@_Dj$9$k!#(B 0 $B$+$i(B 254 $B$^$G$N(B ($B$=$l$>$l0[$k(B) $BHV9f$r;H$C$F!"J]B8$9$kIh$r;XDj$9$k(B $B3F9T$O!"$O$8$a$N$=$NHV9f$r=q$$$F(B $B%3%m%s(B(:) $B$G6h@Z$C$F!"$=$N1&B&$K(B wildmat $B$r;H$C$F$=$NHV9f$NIh$K(B overview $B>pJs$rJ]B8$7$?$$(B $B%K%e!<%9!&%0%k!<%WL>$rJB$Y$F=q$/!#(B storage.conf $B$HF1MM!"0lHV=i$a$K0lCW$7$?9T$,MQ$$$i$l$k(B
    If your server will not be supporting any readers (if it's for news transit only), you can leave this file empty and not run an overchan process (see above under newsfeeds). As a result, no overview information will be generated and reading from the server will be impossible, but the server may run faster. If you choose to do this, you won't be able to set expire times on a newsgroup by newsgroup basis, and if you're using timehash you'll have to use a different syntax in expire.ctl. See the expire.ctl man page for details. $B$b$7$$$^@_Dj$7$F$$$k%5!<%P$+$iD>@\FI$`$H$$$&5!G=$rDs6!$7$J$$>l9g!"(B $B$D$^$jE>Aw$N$_$r9T$&>l9g$K$O!"$3$NIh$r6u$N$^$^$K$7$F$*$$$F!"$7$+$b(B overchan $B=hM}$r9T$J$o$J$$$h$&$K$7$F$*$/$N$,$$$$!#(B ($B>e5-(B newsfeeds $B$N$H$3$m$G$b4{$K?($l$?(B) $B$=$N>l9g!"(Boverview $B>pJs$O@8@.$5$l$:!"D>@\FI$`$3$H$O=PMh$J$/$J$k!#(B $B$7$+$7$=$&$9$k$3$H$K$h$C$F!"%5!<%P$,B.$/$J$k!#(B $B$3$l$rA*$s$@>l9g!"%K%e!<%9%0%k!<%WKh$NJ]B84|4V$H$$$&$b$N$O@_Dj=PMh$J$/$J$k!#(B $B$=$&$7$F99$K$b$7(B timehash $B$r;H$C$F$$$k;~$K$O!"(Bexpire.ctl $B$N=q$-J}(B $B$b0[$C$F$/$k!#$3$l$K$D$$$F$O(B expire.ctl $B$N@bL@(B (man page)$B$r8+$FM_$7$$!#(B
    The way in which you distribute articles across multiple overview storage areas is not an exact science; the goal is to spread access out across a number of smaller files rather than one large file. As a start we suggest creating 27 storage areas; the first 26 will be for newsgroups "a*" through "z*", and the 27th will be for "*" (thus catching any groups that start with a non-letter, of which there are several). You can change the layout in the future by modifying this file and then waiting for the daily news expiration to run, at which time the overview data will be re-arranged for you during the expiration process. overview $B>pJs$,0[$J$C$?J]B8NN0h$K$"$k$h$&$J5-;v$rE>Aw$9$k$N$O!"(B $B8-$$J}K!$H$O8@$($J$$!#(B $B$^$:$NJ}?K$O(B $BBg$-$JIh$r0lEY$KMxMQ$7$h$&$H$;$:$K!"(B $B>.$5$J$$$/$D$b$NIh$r8+$K9T$/$3$H$rJ,;6$5$;$k$h$&$K$9$k$3$H$G$"$k!#(B $B$^$:C5n$N;E;v$,Av$k$N$rBT$F$PNI$$!#(B $B$=$N;~$K(B overview $B>pJs$b>C5n$HF1;~$K:FG[CV$5$l$k!#(B
    Welcome | Supported | Required | Unpack | Sto. Format | install | config | ( inn.conf | newsfeeds | incoming.conf | cycbuff.conf | storage.conf | overview.ctl | expire.ctl | nnrp.access ) | spool(CNFS) | db | news.daily | starting
    7. expire.ctl (REQUIRED)
    The expire.ctl file is the configuration for the expiration policy. See the expire.ctl man page for more details. expire.ctl $B$OJ]B84|4V$N2a$.$?5-;v$N>C5n$K$D$$$F$N@_Dj$r9T$J$&!#(B $B>\$7$/$O(B man page $B$r8+$FM_$7$$!#(B
    Welcome | Supported | Required | Unpack | Sto. Format | install | config | ( inn.conf | newsfeeds | incoming.conf | cycbuff.conf | storage.conf | overview.ctl | expire.ctl | nnrp.access ) | spool(CNFS) | db | news.daily | starting
    8. nnrp.access (REQUIRED)
    The nnrp.access file is the configuration for access to readers. Each line should have this format: nnrp.access $B$OFI=q7O(B($B%K%e!<%9!&%j!<%@(B)$B$+$i$NMxMQ$N2DH]$r@_Dj$9$k!#(B $B$=$l$>$l$N9T$O
    host:access:user:password:groups
    The `host' field can take one of four forms: host $B$NItJ,$O
    • an IP address, e.g. 192.168.0.1
    • an address range, e.g. 192.168.0.0/24
    • a hostname, e.g. userbox.example.com
    • a wildmat pattern that the hostname must match, e.g. *.example.com
    • 192.168.0.1 $B$N$h$&$J(B IP address
    • 192.168.0.0/24 $B$N$h$&$J(B IP address $B$NHO0O(B
    • userbox.example.com $B$N$h$&$J5!3#$NL>A0(B
    • $B5!3#L>$K$D$$$F(B *.example.com $B$N$h$&$J(B wildmat $B7A<0$G$N;XDj(B
    When checking the access rights for a particular host the last match is used. $B$3$3$N(B host $BMs$K$D$$$F$O:G8e$K0lCW$7$?$b$N$r:NMQ$9$k(B
    The `access' field shuold contain an "R" to allow read access and/or a "P" to allow posting access. You can expand these to "Read" and "Post" as in the example that comes with INN. See the man page for other things that can go here. access $BMs$K$D$$$F$O!"(BR $B$GFI$_(B P $B$G=q$/$3$H$r5v2D$9$k!#$=$l$i$NBe$j(B $B$K(B ($BG[I[$KNc$H$7$F=q$$$F$"$k$h$&$K(B) Read Post $B$H=q$$$F$b$$$$!#$3$3$K=q$1$k$=$l0J30$N$3$H$K$D$$$F$O(B man page $B$r;2>H$N$3$H!#(B
    See the man page for details of how to user the `user' and `password' fields. Leave them blank to use solely host-based authentication. user $B$H(B password $BMs$K$D$$$F$O(B man page $B$r8+$FM_$7$$!#(B $B$b$7!"(B($B;HMQ$K$h$k2DH]$N@_Dj$G=
    The `groups' field defines the newsgroups that a matching host may read as a comma-separated list of wildmat patterns. group $BMs$O!"%K%e!<%9!&%0%k!<%WL>$r(B wildmat $B=q<0$r%+%s%^$G$D$J$2$?(B $BJ}K!$G=q$/!#(B
    See the nnrp.access man page for more information. $B$3$l0J30$N>pJs$K$D$$$F$O(B nnrp.access $B$N(B man page $B$K>\$7$/=q$$$F$"$k!#(B
    Welcome | Supported | Required | Unpack | Sto. Format | install | config | ( inn.conf | newsfeeds | incoming.conf | cycbuff.conf | storage.conf | overview.ctl | expire.ctl | nnrp.access ) | spool(CNFS) | db | news.daily | starting
    Creating the article spool (CNFS only) CNFS $B$N>l9g$K!"J]B8NN0h$r:n@.$9$k!#(B
    If you are using actual files as your CNFS buffers then you will need to pre-create these files with the Unix "dd" program. For each cycbuff in your cycbuff.conf file, create the buffer with the following commands as the news user: $B$b$7!"(BCNFS $B$r;H$C$F$$$F!"(B $B$=$N7A<0$H$7$F(B$B!"(B $BIh<+BN$rA*$s$G$$$k>l9g!"(B $B$=$NL>A0$N$b$N$r(B Unix $B$N(B dd $B$r;H$C$FM=$a:n$C$F$*$/I,MW$,$"$k!#(B cycbuff.conf $B$K5-F~$7$?$=$l$>$l$N(B cycbuff $B$K$D$$$F!"(Bnews $B8"8B$NMxMQ
            dd if=/dev/zero of=/path/to/buffer bs=1k count=BUFFERSIZE
            chmod 0664 /path/to/buffer
    Substitute the buffer pathname and the buffer size (as listed in the cycbuff.conf file) in the appropriate spots in the commands. This will create a zero- filled file of the correct length; it may take a while to run, so be prepared to wait.

    Once you have created all of your cycbuffs, you are ready to continue with the next step of the installation.

    $B$3$N;~$K!"(B/path/to/buffer $B$H=q$$$F$"$k(B path $BL>$H!"(BBUFFERSIZE $B$O!"(B $B$b$A$m$sI,MW$J$b$N$KCV49$($k!#(BBUFFERSIZE $B$K$D$$$F$O(B cycbuff.conf $B$K=q$$$?DL$j$N$b$N$r;H$&!#$3$&$9$k$H!"I,MW$JBg$-$5$N!"Nm$P$+$j$,(B $B=q$$$F$"$k$b$N$,=PMh$k!#Bg$-$5$K$h$C$F$O!"$+$J$j;~4V$,$+$+$k$N$G(B $B$"$o$F$J$$$GM_$7$$!#(B

    $B@_CV$O0zB3$/!#(B

    Welcome | Supported | Required | Unpack | Sto. Format | install | config | ( inn.conf | newsfeeds | incoming.conf | cycbuff.conf | storage.conf | overview.ctl | expire.ctl | nnrp.access ) | spool(CNFS) | db | news.daily | starting
    Creating the db files db $B7A<0$r:n@.$9$k(B
    At this point you need to set up the news database directory (~news/db). To make things easier you should su to your news user; otherwise the files you create will be owned by root and you'll have to change the owner and group IDs on the files manually. You should also have your working directory set to the ~news/db directory, and ~news/bin should be in your PATH so that you can execute INN support commands without typing full pathnames.

    To begin you'll need current active and newsgroups files. These may be downloaded from the following location:

    $B $B$^$:=i$a$K!"(Bactive $B$H(B newsgroups $BIh$,I,MW$K$J$k!#Nc$($P!"$3$l$i$O(B $B
    ftp.isc.org:/pub/usenet/CONFIG
    Download the files "active" and "newsgroups" and place them in your ~news/db directory.

    Next you need to create an empty history database. This can be accomplished by running the following command:

    $B>e5-$+$i(B active $B$H(B newsgroups $B$H$$$&L>A0$NIh$r $B
    makehistory -i
    When it finished, you need to move history.n* to history*. Finally, set the file permissions on all of the files you just created: $B$3$l$,=*$C$?$i(B history.n* $B$r(B history*. $B$KJQ99$7$F$*$/!#$=$&$7$F!"(B $B$$$^:n$C$?$b$N$N5v2D$r
    chmod 0664 *
    Your news database files are now ready to go. $B$3$l$G%G!<%?$Y!<%9$N=`Hw40N;!#(B
    Welcome | Supported | Required | Unpack | Sto. Format | install | config | ( inn.conf | newsfeeds | incoming.conf | cycbuff.conf | storage.conf | overview.ctl | expire.ctl | nnrp.access ) | spool(CNFS) | db | news.daily | starting
    Setting up the news.daily cron job news.daily cron $B$N@_Dj(B
    INN requires a special cron job to be set up on your system to run the news.daily script, which performs daily server maintenance tasks such as article expiration and the processing and rotation of the server logs. Since it will slow the server down while it is running, it should be run during periods of low server usage, such as in the middle of the night. To run it at 3 am, for example, add the following entry to the news user's crontab file: INN $B$O(B cron $B$N@_Dj$r$7$F(B news.daily $B$rDj4|E*$KAv$i$;$k!#(B $B$3$l$K$h$C$F!"(B $BJ]B84|4V$N2a$.$?5-;v$N>C5n!"(B $B%5!<%P$N5-O?$NL>A0$rJQ99$9$k$3$H$r9T$J$&!#(B $B$3$N:n6HCf$O%5!<%P$NB.EY$,>/$72<$,$k$N$G!"(B $B%5!<%P$NIi2Y$N7Z$$;~!"Nc$($PLk4V$J$I$K9T$&$N$,E,@Z$G$"$k!#(B $BNc$($P8aA0(B 3 $B;~$K
    0 3 * * * /usr/local/news/bin/news.daily expireover lowmark
    or, if your system does not have per-user crontabs, put the following line into your system crontab instead: $B$b$7(B OS $B$,!"MxMQ
    0 3 * * * su -c "/usr/local/news/bin/news.daily expireover lowmark" news
    Also, a cron job should be set up to transmit to your upstream site any articles that have have been posted locally and queued for transmission, for example: (($BLuCm(B)$B$b$7(B innfeed $B$r;H$C$F$$$J$/$F(B nntp $B$K$h$k@\B3$r$7$F$$$k$J$i(B) $B<+J,$N$H$3$m$GEj9F$5$l$?5-;v$r>eN.$KE>Aw$9$k$h$&$K!"
    1,11,21,31,41,51 * * * * /usr/local/news/bin/nntpsend
    The pathnames and user ID used above are the installation defaults; change them to match your installation if you used something other than the defaults.

    The parameters passed to news.daily in the above example are the most common (and usually the most efficient) ones to use. More information on what these parameters do can be found in the news.daily man page.

    $B$3$3$G$"$2$?$$$/$D$+$NNc$N(B pathname $B$H(B user ID $B$O@_CV;~$N=i4|CM$G$"$k!#(B $B$b$7$$$^@_CV$7$F$$$k$b$N$H0c$C$F$$$k>l9g$K$O!"I,MW$K1~$8$FJQ99$7$FM_$7$$!#(B news.daily $B$KEO$90z?t$J$I$O!"(B $B:G$bIaDL$N!"$=$&$7$F8zN(E*$J@_Dj$G$"$k!#(B $B>\$7$/$O(B news.daily $B$N(B man page $B$r;2>H$7$FM_$7$$!#(B
    Welcome | Supported | Required | Unpack | Sto. Format | install | config | ( inn.conf | newsfeeds | incoming.conf | cycbuff.conf | storage.conf | overview.ctl | expire.ctl | nnrp.access ) | spool(CNFS) | db | news.daily | starting
    Starting the system $B%7%9%F%`$N5/F0(B
    INN is normally started via the shell script rc.news. This must be run as the news user and not as root. Put the following command (or something similar) into the system boot script: INN $B$ODL>o(B rc.news $B
    su news -c /usr/local/news/bin/rc.news
    If innd gets stopped or killed and you want to restart it without re-running rc.news, then run inndstart $B$b$72?$+$N860x$G;_$C$F$7$^$C$?;~$d!"(Bkill $B$7$?8e$K(B rc.news $B$r;H$o$J$$$G5/F0$9$k>l9g$K$O!"(B $B
    /usr/local/news/bin/inndstart
    If you added any values to the innflags variable in inn.conf, then you'll need to add the same values to the command line of inndstart if you run it by hand. inn.conf $B$N(B innflags $B$NJQ?t$K2?$+2C$($F$$$k>l9g!"$b$7>e5-$N$h$&(B $B$K(B inndstart $B$r;H$&$J$i!"F1$8JQ?t$r










    2000/07/23 $B0l1~40Lu(B
    2000/07/20 storage.conf $B$J$I$rLu$7$J$,$i(B 2.2.2 $B$r(B 2.3 $B$KJQ99!#(B
    2000/07/09 cns -> cnfs $B$N8m?"$rD{@5(B
    2000/07/05 CNFS/timehash $B$rKd$a$k(B
    2000/06/25 newsfeeds $B$^$G$?$I$jCe$/(B
    2000/06/24 $B$d$C$HH>J,$/$i$$Lu$7$?$+!#JY6/$K$J$k!#(B
    Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
    Apache/2.4.62 (Unix) OpenSSL/3.0.12
    Count.cgi
    (since 1999/12/07)