==================================
Installation Information For RIP
==================================

To run the database you need to perform the following steps:

0. To download reimplementation software release and unpack it.
   If you are reading this file, you probably have already done this.
1. To compile the code.
   You need to build two programs: whois_rip and loader.
   To build whois_rip: cd RIP/bin/rip; make;
   To build loader: cd RIP/bin/load; make;
2. To download a database snapshot containing object files and current serial number.
3. To create the databases.
4. To load the databases.
5. To run whois_rip

Steps related to database preparation are explained in detail below.

0. INTRODUCTION
---------------

The service relies on the following databases:
- main database containing object tables, and
- administrative database currently containing access control table.

In the text below the term 'database' will reference main database.

1. CONFIGURATION VARIABLES
--------------------------

This process is controlled by the script RIP/bin/load/make_db. Before
starting the script you need to edit it in order to change several variables
according to your site configuration.

The variables to change are:

MYSQL      - location of your MySQL client.
HOST       - name of the host where the database resides.
USER       - user name needed to access the database.
PASSWORD   - password needed to access the database.
DB         - name of the database.
OBJDIR     - location of your object files from the snapshot.
PROPERTIES - name of configuration file for whois_rip (see details below).

You also need to define several variables in whois_rip configuration file
referenced by PROPERTIES variable. To run query server and NRTM client you
need to define the following:

SV.whois_port=43      - port to answer qhois queries
SV.config_port=43333  - port for configuration

DB.user=user1         - user name needed to access the database (same as $USER)
DB.password=mypswd    - password needed to access the database (same as $PASSWORD)
DB.host=dbhost.db.net - name of the host where the database resides (same as $HOST)
DB.database=RIPE      - name of the database (same as $DB)


#
# 0 [1] dummy creation is allowed [0] not allowed
# 1 [1] update mode               [0] NRTM client mode
# 2 [1] standalone                [0] part of a server
#
UD.update_mode=7           - should be 7 for initial loading 



The following section is not needed for initial loading, but is used in NRTM
client mode.

MI.nrtm_host=nrtm.host.net - name of the NRTM server
MI.nrtm_port=43            - mirroring port of the server
MI.nrtm_logfile=nrtm.log   - name of the log
MI.nrtm_delay=1000         - delay between successive attempts to download serials


2. DATABASE CREATION AND LOADING
--------------------------------

As soon as this is done you may start ./make_db script, which will perform the
following operations:

- create main ($DB) and administrative (RIPADMIN) databases;
- load the database (I and II passes);
- create necessary indexes;

After the script finishes look at the log files for errors.


3. STARTING THE SERVICE
-----------------------

The name of the RIP main server is RIP/bin/whois_rip. 

To start the service:

$ cd RIP/bin/
$ ./whois_rip <config_file_name>

where <config_file_name> points to configuration file similar to one we used
for database loading. Depending on the desired operation mode you need to
define UD.update_mode variable.

Its most common values are:
7 - when you want to launch query and update mode, allowing dummy objects[*]
1 - when you want to launch query and NRTM client mode, allowing dummy objects[*]

_______________
[*] Dummy are temporary objects in the database created to maintain
referential integrity of the database when some object references
non-existent other object. For example, while creating domain object a dummy
person object will be created for admin-c attribute if it references
non-existent NIC handle. You may want to use this feature when loading
inconsistent data. When dummy creation is disabled you will get referential
integrity error when attempting to create inconsistent object.
