Add to git.
[dlife.git] / INSTALL
1 Distributed Artificial Life (DLIFE) Installation Instructions
2 -------------------------------------------------------------
3
4 Prerequisites
5 -------------
6
7 For security reasons, all programs run as user/group dlife/dlife. Therefore
8 in order to be able to install this program, you must first create a user
9 and group called `dlife'. On a typical Linux system you will need to
10 do this, as root, before installing:
11
12         /usr/sbin/groupadd dlife
13         /usr/sbin/useradd -g dlife -M dlife
14
15 You will need the following Perl packages installed. Get them from
16 CPAN (http://www.cpan.org/) or one of its mirrors, or else get RPMs
17 from http://dlife.annexia.org/files/ .
18
19         libnet, HTML-Parser, URI, MIME-Base64, Digest-MD5, libwww-perl,
20         Getopt-Long
21
22 Warning to non-Red Hat users
23 ----------------------------
24
25 The current installation is very Red Hat / Debian specific. It
26 installs files under /etc/cron.d/ and /etc/init.d/ directories, which
27 probably only exist on Red Hat or Debian machines. It would be nice to
28 have a way to determine where these directories are and to
29 automagically install cron jobs and rc files in the appropriate
30 places. Can anyone help me with this?
31
32 Building and installing the client from source
33 ----------------------------------------------
34
35 Configure the software:
36
37         ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
38
39 Check that the software is going to be installed in the right
40 places. On my Red Hat Linux boxen, I get:
41
42         checking for crontab directory... /etc/cron.d
43         checking for rc directory... /etc/init.d
44         checking spool directory... /var/spool/dlife
45         checking config directory... /etc/dlife
46
47 Build it:
48
49         make
50
51 Install it (as root):
52
53         make install
54
55 To start up the software, run the following command as root:
56
57         /etc/init.d/dlife.rc
58
59 If all went well, then you should see one of more ``dlife_soup''
60 processes running in top. (There should be one process for each
61 CPU on your machine).
62
63 To make the dlife client start up every time you reboot the
64 computer, do as root:
65
66         /sbin/chkconfig --add dlife.rc
67
68 A cron job is set to run every hour which exchanges cells with
69 your local dlife server. By default it runs at 5 minutes past
70 the hour, but to avoid causing load spikes on dlife servers at
71 this time, it's best to edit the cron script and change the
72 time at which it runs. This script is here:
73
74         /etc/cron.d/dlife_client.cron
75
76 If you're running behind a firewall, then you may want to run a
77 server (see next section). In that case, you need to edit the
78 following file to list the location of your server(s):
79
80         /etc/dlife/client.conf
81
82 Building and installing the server from source
83 ----------------------------------------------
84
85 Follow the process above, as if you were installing the client.
86
87 Edit /etc/inetd.conf and add the following line:
88
89         5904 stream tcp nowait root /usr/sbin/tcpd /usr/bin/dlife_server.pl
90
91 Restart inetd:
92
93         killall -HUP inetd
94
95 Building RPMs
96 -------------
97
98 To build RPMs from the sources:
99
100         ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
101                 --disable-user-check
102         make
103         make dist
104         rpm -ta --clean dlife-X.Y.Z.tar.gz
105
106 (where X.Y.Z is the current version of dlife).