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.

As a side note, whenever doing anything with a running news server, first log in as this user. That way, you can ensure that all files created by any commands you run are created with the right ownership to be readable by the server. Particularly avoid doing anything in the news spool itself as root, and make sure you fix the ownership of any created files if you have to. INN doesn't like files in the news spool owned by a user other than the news user.

INN 2.3 uses GNU autoconf and a generated configure script to make configuration rather painless. Unless you have a rather abnormal setup, configure should be able to completely configure INN for your system. If you want to change the defaults, you can invoke the configure script with one or more command line options. Type:

    ./configure --help

for a full list of supported options. Some of the most commonly used options are:

--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).

--with-db-dir=PATH

Sets the prefix for INN database files. The default is PREFIX/db, where PREFIX is /usr/local/news unless overridden with the option above. All of the really large files created by INN, including the history file, the overview files, and the news spool (for tradspool, timehash, and timecaf storage methods) are created under this directory, so it's the most common portion of INN to move to a different location on the system (often /news).

It's also possible to set the paths for most other sections of the INN installation independently; see ./configure --help and look for the --with-*-dir=PATH options.

--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 you install INN without tagged hash (the default) and expire takes an excessive amount of time, you should make sure the RAM in your system satisfies the following formula:

    ram > 10 * tablesize

          ram:  Amount of system RAM
    tablesize:  3rd field on the 1st line of history.dir

If you don't have at least that much RAM, try rebuilding INN with tagged hash enabled.

--with-perl

Enables support for embedded Perl, allowing you to install filter scripts written in Perl. Highly recommended, because many really good spam filters are written in Perl. You will need Perl 5.004 or later installed on your system to use this option (otherwise, INN will not compile). See README.perl_hook for all the details.

Even if you do not use this option, INN still requires Perl to build (but an earlier version may suffice).

--with-python

Enables support for Python, allowing you to install filter scripts written in Python. You will need Python 1.5.2 or later installed on your system to enable this option. See README.python_hook for all the details.

--with-tcl

Enables support for Tcl, allowing you to install filter scripts written in Tcl. Most available filterse seem to be written in Perl these days, so you can safely leave out Tcl support. If you choose to enable this, you will need to have a suitable Tcl distribution installed. See README.tcl_hook for all the details.

--disable-uucp-rnews

By default, rnews is installed setuid root, owned by group uucp, and mode 4550. This is so that the UUCP subsystem can run rnews to process UUCP batches of news articles (rnews changes UID to the news user right after it starts). If you don't plan on using UUCP, and particularly if you don't have a uucp group on your system, you probably want to use this option to cut down on the number of needless setuid root binaries on your system. When this option is used, rnews will only be executable by the news user.

--disable-setgid-inews

By default, inews is installed setgid news so that it can be run by regular users and still be able to talk to innd via a Unix domain socket (somewhat faster than opening a new network connection). If you are installing a standalone news server that won't have regular users (or at least regular users who need to run inews), you probably want to use this option to cut down on needless setgid binaries. When this option is used, inews will only be executable by users in the news group.

For the most common installation, a standalone news server, a suggested set of options is:

    ./configure --with-perl --disable-uucp-rnews --disable-setgid-inews

provided that you have the necessary version of Perl installed.

If the configure program runs successfully, then you are ready to build the distribution. From the root of the INN source tree, type:

    make

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.

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

    make install

(You will need to run this command as root so that INN can create the directories it needs and install a couple of setuid wrapper scripts needed to raise resource limits and allow innd to bind to port 119.) 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!