- Non-members of a channel could crash the server when trying to change its modes...
[ngircd-alex.git] / INSTALL
1
2                      ngIRCd - Next Generation IRC Server
3
4                       (c)2001,2002 by Alexander Barton,
5                     alex@barton.de, http://www.barton.de/
6
7                   ngIRCd ist freie Software und steht unter
8                        der GNU General Public License.
9
10                          -- INSTALL / Installation --
11                          
12                       Ilja Osthoff, <ilja@glide.ath.cx>
13
14
15  +-----------------------------------------------------------------------+
16  | Please note: English translations of some of the german documentation |
17  | files can be found in the directory "doc/en" -- please have a look!   |
18  +-----------------------------------------------------------------------+
19
20
21 0. Update von frueheren Versionen
22 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
23
24 Unterschiede zu Version 0.5.x
25
26 - Ab Version 0.6.0 werden asyncrone Passwoerter zur Identifikation anderer
27   Server, die Variable "Password" in [Server]-Abschnitten wird nicht mehr
28   unterstuetzt. Passwoerter fuer Server-Server-Links werden nun mit den
29   Variablen "MyPassword" und "PeerPassword" angegeben.
30
31 - Neue Konfigurationsvariablen, Sektion [Global]: MaxConnections, MaxJoins
32   (vgl. auch Beispiel-Konfiguration "doc/sample-ngircd.conf"!)
33
34
35 I. Standard-Installation
36 ~~~~~~~~~~~~~~~~~~~~~~~~
37
38 ngIRCd ist fuer UNIXoide-Systeme konzipiert worden, das bedeutet, dass die
39 Installation auf einem modernen UNIX-aehnlichen System kein Problem dar-
40 stellen sollte. Das System muss nur von GNU automake und GNU autoconf
41 ("configure") unterstuetzt werden.
42
43 Die Standard-Installation sieht so aus:
44
45    1) tar xzf ngircd-<Version>.tar.gz
46    2) cd ngircd-<Version>
47    3) ./autogen.sh      [nur erforderlich, wenn ueber CVS bezogen]
48    4) ./configure
49    5) make
50    6) make install
51
52
53 zu 3): "autogen.sh"
54
55 Der erste Schritt, autogen.sh, ist nur notwendig, wenn das configure-Script
56 noch nicht vorhanden ist. Dies ist nie bei offiziellen ("stabilen") Versionen
57 in tar.gz-Archiven der Fall, jedoch immer, wenn der Source-Code ueber CVS
58 bezogen wurde.
59
60 Dieser Absatz ist also eigentlich ausschliesslich fuer Entwickler interessant.
61
62 autogen.sh erzeugt die fuer das configure-Script notwendigen Makefile.in's
63 sowie das configure-Script selber und weitere fuer den make-Lauf erforderliche
64 Dateien. Dazu wird sowohl GNU automake als auch GNU autoconf (in aktuellen
65 Versionen!) benoetigt.
66
67 (nochmal: "Endanwender" mussen diesen Schritt i.d.R. nicht ausfuehren!)
68
69
70 zu 4): "./configure"
71
72 Mit dem configure-Script wird ngIRCd, wie GNU Software meistens, an das
73 lokale System angepasst und die erforderlichen Makefile's erzeugt.
74
75 Im Optimalfall sollte configure alle benoetigten Libraries, Header etc. selber
76 erkennen und entsprechend reagieren. Sollte dies einmal nicht der Fall sein,
77 so zeigt "./configure --help" moegliche Optionen.
78
79
80 zu 5): "make"
81
82 Der make-Befehl bearbeitet die vom configure-Script erzeugten Makefile's und
83 uebersetzt den ngIRCd.
84
85
86 zu 6): "make install"
87
88 Mit "make install" wird der Server und ggf. eine Beispiels-Konfiguration
89 im System installiert; hierzu sind in der Regel root-Rechte erforderlich.
90 Eine bereits vorhandene Konfigurationsdatei wird nie ueberschrieben.
91
92 Folgende Dateien werden installiert:
93
94 - /usr/local/sbin/ngircd: ausfuehrbarer Server
95 - /usr/local/etc/ngircd.conf: Beispiel-Konfiguration, wenn nicht vorhanden
96
97
98 II. Nuetzliche make-Targets
99 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
100
101 Die vom configure-Script erzeugten Makefile's enthalten immer die folgenden
102 nuetzlichen Targets:
103
104  - clean: alle Erzeugnisse des Compilers/Linkers loeschen.
105    Naechster Schritt: -> make
106
107  - distclean: zusaetzliche alle Makefile's loeschen.
108    Naechster Schritt: -> ./configure
109
110  - maintainer-clean: alle automat. erzeugten Dateien loeschen.
111    Naechster Schritt: -> ./autogen.sh
112
113
114
115 III. Konfigurationsdatei ngircd.conf
116 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
117
118 In der Konfigurationsdatei werden Kommentare durch "#" oder durch ";"
119 eingeleitet. Dieses dient nur der besseren Lesbarkeit.
120
121 Die Datei ist in drei Abschnitte unterteilt: [Global], [Operator] und
122 [Server]. Im [Global]-Teil werden die grundlegenden Einstellungen vor-
123 genommen, z.B. der Server-Name und die Ports, auf denen er Verbindungen
124 annehmen soll. In [Operator]-Abschnitten werden Server-Operatoren fest-
125 gelegt und unter [Server] werden die Einstellungen fuer die Verbindung
126 mit anderen Servern konfiguriert.
127
128 Die Bedeutung der einzelnen Variablen ist in der Beispiel-Konfiguration
129 "doc/sample-ngircd.conf" erklaert, die bei "make install" auch als
130 "ngircd.conf" in /usr/local/etc installiert wird, wenn dort noch keine
131 Konfigurationsdatei vorhanden ist.
132
133
134 IV. Kommandozeilen-Optionen
135 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
136
137 Folgende Parameter koennen dem ngIRCd u.a. uebergeben werden:
138
139 -f, --config <file>
140         Der Daemon wird angewiesen, statt der Standard-Konfigurationsdatei
141         /usr/local/etc/ngircd.conf die Datei <file> einzulesen.
142
143 -n, --nodaemon
144         ngIRCd soll im Fordergrund laufen; alle Meldungen werden zusaetzlich
145         zum Syslog auch auf der Konsole ausgegeben.
146
147 -p, --passive
148         Verbindungen zu anderen Servern (wie in der Konfigurationsdatei in
149         [Server]-Abschnitten definiert) werden nicht automatisch hergestellt.
150
151 --configtest
152         Die Konfigurationsdatei wird eingelesen, ueberprueft und so aus-
153         gegeben, wie sie vom ngIRCd interpretiert wurde. Danach beendet
154         sich der Server wieder.
155
156 Mit dem Parameter "--help" werden alle unterstuetzten Parameter angezeigt,
157 mit "--version" die Versionsnummer. Bei beiden Parametern beendet sich der
158 Server nach der Ausgabe wieder.
159
160
161 -- 
162 $Id: INSTALL,v 1.9 2002/12/18 12:19:07 alex Exp $