Using LinkController: Configuration

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

# 2. Configuration

> 2.1 Interactive Configuration |  | An easy way to get a basic configuration.
> 2.2 Setting Configuration Variables |  | How to set variables.
> 2.3 LinkController Configuration Variables |  | LinkController's main configuration variables.
> 2.4 Configuring Infostructures |  | Defining which pages to check.

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

## 2.1 Interactive Configuration

The `configure-link-control` program can be used by users to configure LinkController. This will ask you a series of questions and then generate a configuration file in your home directory. This is a good way to start configuring LinkController.

The configuration that is controlled by this program is related to reporting and fixing links. For other configuration see See section 7. Administration.

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

## 2.2 Setting Configuration Variables

If automatic configuration (see section 2.1 Interactive Configuration) doesn't work well enough for you, then you should manually change the configuration variables. All of the variable information is stored in the file ``.link-control.pl'` in your home directory or ``/etc/link-control.pl'` for system wide configuration. These locations are hardwired into the LinkController system and should only change if your administrator has done something strange. The configuration files are written directly in Perl (the programming language LinkController is written in). You can set the configuration variables by putting lines like this.

    $::links='/var/lib/link_database.bdbm';

Please note the semi colon at the end of the line and the use of single quotes so that Perl doesn't do anything strange to your values.

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

## 2.3 LinkController Configuration Variables

This is a complete list of the configuration variables which a user should chnage in the ``.link-control.pl'` file. See section 2.2 Setting Configuration Variables, for how to do this.

`$::user_address`
  is the email address which the robot declares to the world as it goes around checking links. If you want to check links yourself, you must set this to a valid email address, because if something goes badly wrong, it is the only way for a user at another site to know how to contact you.

`$::base_dir`
  This is the base directory for all of the configuration files. If this variable is defined then the other variables will default as given below and do not need to be set individually.

`$::links`
  tells you what file is being used to store information about links. This could easily be a shared database used by everyone on your system. Defaults to ``$::base_dir/links.bdbm'`.

`$::schedule`
  tells the system where to find the schedule file used to decide which links should be checked next and when that should be. You will need to set this and create the file in order to do link checking. Defaults to ``$::base_dir/schedule.bdbm'`.

`$::page_index`
  This variable tells LinkController where to find the index which lists which links are contained on each page. Defaults to ``$::base_dir/page_has_link.cdb'`.

`$::link_index`
  This variable tells LinkController where to find the index which lists which links are contained on each page. This is used during reporting to create the list of pages that should be repaired. It is also used during repair to decide which files have to be repaired. The file can be regenerated by running `extract-links`. Defaults to ``$::base_dir/link_on_page.cdb'`.

`$::infostrucs`
  This variable points to the configuration file where definitions of infostructures are should be put 2.4 Configuring Infostructures. Defaults to ``$::base_dir/infostrucs'`.

`$::link_stat_log`
  This variable is the name of a file where important link status changes will be logged. The current definition is links which have just been discovered to be broken. This can be used in email notification 4.4 Email Reporting of Newly Broken Links. There is no default value for this file and it is not generated by default.

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

## 2.4 Configuring Infostructures

The infostructure configuration says where our web pages are stored and how they are accessed. It is kept in a separate file defined by the `$::infostrucs` configuration variable. The file is used by `extract-links` (see section F.3 Invoking extract-links) to find which files to get links from; it is used by `fix-link` (see section F.4 Invoking fix-link) to find out where files needing to be repaired are stored; it is used by `check-page` (see section F.5 Invoking check-page) to work out the base URI for any file being checked and finally it is used for certain reports in `link-report` (see section F.1 Invoking link-report).

The format of the file is one line for each infostructure with configuration directives separated by spaces. For example

    directory http://example.com/manual /var/www/html/manual
    www http://example.com/strange_database

The first directive describes how `extract-links` program should extract the links. It currently has three possible values. The value `www` means to actually use the given URL to download the web pages. The value `directory` means that `extract-links` should assume that all of the files are stored in a directory and that the directory structure matches the structure of the infostructure. The final value `advanced` allows for further configuration at the cost of extra complexity. See section 3.1 Advanced Infostructure Configuration, for more information about this.

In the case where we use the `directory` directive, a third directive is present on each line with the full path to the base directory of the infostructure. In this case `fix-link` will be able to repair broken links in these files and `extract-links` will use direct file access to the file system when extracting links.

[ << ] | [ >> ] |  |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

This document was generated by Michael De La Rue on February, 3 2002 using texi2html