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
- inn.conf (REQUIRED)
- newsfeeds (REQUIRED)
- incoming.conf (REQUIRED)
- cycbuff.conf (Required only if using the CNFS article storage method)
- storage.conf (Required only if using the CNFS or timehash storage methods)
- overview.ctl (Required only if using the CNFS or timehash storage methods)
- expire.ctl (REQUIRED)
- 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.
| |
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$/2r | innflags (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
(since 1999/12/07)