1 |
michael |
3389 |
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
2 |
|
|
<html> |
3 |
|
|
<head> |
4 |
|
|
<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1"> |
5 |
|
|
<title>IRC Services Manual - 2. Installing and using Services</title> |
6 |
|
|
</head> |
7 |
|
|
|
8 |
|
|
<body> |
9 |
|
|
<a name=top></a> |
10 |
|
|
<h1 align=center>IRC Services Manual</h1> |
11 |
|
|
|
12 |
|
|
<h2 align=center>2. Installing and using Services</h2> |
13 |
|
|
|
14 |
|
|
<br>2-1. <a href="#1">System and network requirements</a> |
15 |
|
|
<br>2-2. <a href="#2">Installing Services from a binary distribution</a> |
16 |
|
|
<br>2-3. <a href="#3">Installing Services from source code</a> |
17 |
|
|
<br>2-4. <a href="#4">Configuring Services</a> |
18 |
|
|
<br>2-5. <a href="#5">Configuring your IRC server</a> |
19 |
|
|
<br>2-6. <a href="#6">Starting, stopping and controlling Services</a> |
20 |
|
|
|
21 |
|
|
<p align=right><font size=-1><a href="1.html">Previous section: About IRC Services</a> | |
22 |
|
|
<a href="index.html">Table of Contents</a> | |
23 |
|
|
<a href="3.html">Next section: Overview of Services features</a></font> |
24 |
|
|
|
25 |
|
|
<p><hr> |
26 |
|
|
|
27 |
|
|
<a name=1></a> |
28 |
|
|
<h3>2-1. System and network requirements</h3> |
29 |
|
|
|
30 |
|
|
<p>In order to run Services, you will need the following:</p> |
31 |
|
|
|
32 |
|
|
<p><ul> |
33 |
|
|
<li><b>A POSIX-compliant operating system.</b> Services is designed |
34 |
|
|
for the Linux operating system, but should function on any POSIX-compliant |
35 |
|
|
(or nearly so) operating system; it is known to work on FreeBSD, OpenBSD, |
36 |
|
|
and Solaris, and has been reported to work on MacOS X and AmigaOS as well. |
37 |
|
|
(On AmigaOS, you will need to increase the program stack size using the |
38 |
|
|
CLI command <tt>STACK</tt>; a stack size of 512k, 524288 bytes, should be |
39 |
|
|
sufficient. Services is not supported on Windows, but some users have |
40 |
|
|
reported success in running it; see <a href="faq.html#A3">FAQ A.3</a>.) |
41 |
|
|
|
42 |
|
|
<p><li><b>A supported IRC server</b> (IRCD). Services supports several |
43 |
|
|
different types of IRC servers, as listed in Table 2-1 below. Your IRC |
44 |
|
|
network must be using one of these servers in order to use Services (the |
45 |
|
|
"Services module" column indicates which protocol module is used with that |
46 |
|
|
server; see <a href="#4">section 2-4</a> for details). |
47 |
|
|
</ul> |
48 |
|
|
|
49 |
|
|
<p>Additionally, if you plan to compile Services from the source code, you |
50 |
|
|
will also need the following (note that these are not necessary if you |
51 |
|
|
install from a binary package):</p> |
52 |
|
|
|
53 |
|
|
<p><ul> |
54 |
|
|
<li><b><a href="http://www.gnu.org/software/gcc/gcc.html">GCC</a> |
55 |
|
|
<font size=-1>[<tt>www.gnu.org</tt>]</font> (the GNU C compiler),</b> |
56 |
|
|
version 3.2 or later. Services uses some extensions to the C language |
57 |
|
|
provided by GCC, and is unlikely to compile on other compilers; Services |
58 |
|
|
also takes advantage of recent additions to the C standard (often referred |
59 |
|
|
to as "C99") which are not supported by older versions of GCC. |
60 |
|
|
|
61 |
|
|
<p><i>Notice: (1)</i> Services will not work with the |
62 |
|
|
<a href="http://www.trl.ibm.com/projects/security/ssp/">SSP (stack-smashing |
63 |
|
|
protector)</a> <font size=-1>[<tt>www.trl.ibm.com</tt>]</font> patch to GCC, |
64 |
|
|
due to a bug in SSP triggered by Services that causes crashes. The |
65 |
|
|
<tt>configure</tt> script (see below) will automatically detect the |
66 |
|
|
presence of this patch and deactivate the stack-protection feature, or |
67 |
|
|
refuse to compile if it cannot be deactivated. |
68 |
|
|
|
69 |
|
|
<p><i>(2)</i> Versions of GCC before 3.4 have bugs which cause Services to |
70 |
|
|
crash. Services has workarounds for the Intel x86, SPARC, and PowerPC |
71 |
|
|
platforms, but you will need to use GCC 3.4 or later on other systems. See |
72 |
|
|
<a href="faq.html#B1.5">FAQ B.1.5</a> for details. |
73 |
|
|
|
74 |
|
|
<p><li><b><a href="http://www.gnu.org/software/make/make.html">GNU |
75 |
|
|
make</a> [<font size=-1><tt>www.gnu.org</tt></font>], version 3.79 or |
76 |
|
|
later.</b> Services uses complex Makefiles which may or may not work with |
77 |
|
|
other "make" programs, and are known not to work with earlier versions of |
78 |
|
|
GNU make. Note that GNU make may be installed on your system as either |
79 |
|
|
<tt>make</tt> or <tt>gmake</tt>; if you're not sure, type <tt>make -v</tt> |
80 |
|
|
or <tt>gmake -v</tt> in your shell, and if you get output that looks like |
81 |
|
|
"<tt>GNU Make version 3.79.1, by Richard Stallman and Roland McGrath</tt>", |
82 |
|
|
then it's installed. |
83 |
|
|
|
84 |
|
|
<p><li><b>The Bourne shell</b> or a compatible shell. This is installed on |
85 |
|
|
most Unix-like systems as <tt>/bin/sh</tt>. If by any chance the |
86 |
|
|
<tt>configure</tt> script fails (see <a href="#3">section 2-3</a>), try |
87 |
|
|
installing <a href="http://www.gnu.org/software/bash/bash.html">Bash</a> |
88 |
|
|
<font size=-1>[<tt>www.gnu.org</tt>]</font> and using it to run the |
89 |
|
|
<tt>configure</tt> script. |
90 |
|
|
|
91 |
|
|
<p><li><b><a href="http://www.perl.com/">Perl</a> |
92 |
|
|
<font size=-1>[<tt>www.perl.com</tt>]</font></b> may also be needed if you |
93 |
|
|
modify certain files (the language data files in particular). |
94 |
|
|
</ul> |
95 |
|
|
|
96 |
|
|
<div align=center> |
97 |
|
|
<a name=table1></a> |
98 |
|
|
<b>Table 2-1.</b> Supported IRC server types<br><br> |
99 |
|
|
<table border=1> |
100 |
|
|
<tr><th>IRC server (IRCD) name<th>Services module |
101 |
|
|
<tr><td><a href="http://bahamut.dal.net/">Bahamut</a> |
102 |
|
|
<font size=-1>[<tt>bahamut.dal.net</tt>]</font> 1.8.0 and later |
103 |
|
|
<font color=red>(*)</font> |
104 |
|
|
<td align=center><tt>bahamut</tt> |
105 |
|
|
<tr><td>Chunky Monkey IRCD 1.0 and later |
106 |
|
|
<td align=center><tt>monkey</tt> |
107 |
|
|
<tr><td>DALnet (ircd.dal) 4.4.13 and earlier |
108 |
|
|
<td align=center><tt>dalnet</tt> |
109 |
|
|
<tr><td>DALnet (ircd.dal) 4.4.15 and latre |
110 |
|
|
<td align=center><tt>dreamforge</tt> |
111 |
|
|
<tr><td>Dreamforge (ircd.dal 4.6.x) |
112 |
|
|
<td align=center><tt>dreamforge</tt> |
113 |
|
|
<tr><td><a href="http://www.inspircd.org/">InspIRCd</a> |
114 |
|
|
<font size=-1>[<tt>www.inspircd.org</tt>]</font> 1.1 and later |
115 |
|
|
<td align=center><tt>inspircd</tt> |
116 |
|
|
<tr><td><a href="http://ircd-hybrid.com/">IRCD-Hybrid</a> |
117 |
|
|
<font size=-1>[<tt>ircd-hybrid.com</tt>]</font> 7.0 and later |
118 |
|
|
<font color=red>(**)</font> |
119 |
|
|
<td align=center><tt>hybrid</tt> |
120 |
|
|
<tr><td>ircd-2.8.x |
121 |
|
|
<td align=center><tt>rfc1459</tt> |
122 |
|
|
<tr><td>ircd-2.8.x+TS8 |
123 |
|
|
<td align=center><tt>ts8</tt> |
124 |
|
|
<tr><td><a href="http://coder-com.undernet.org/">ircu (Undernet)</a> |
125 |
|
|
<font size=-1>[<tt>coder-com.undernet.org</tt>]</font> 2.9.x |
126 |
|
|
<td align=center><tt>undernet-p9</tt> |
127 |
|
|
<tr><td><a href="http://www.ptlink.net/Coders/">PTlink IRCd</a> |
128 |
|
|
<font size=-1>[<tt>www.ptlink.net</tt>]</font> 6.10.0 and later |
129 |
|
|
<td align=center><tt>ptlink</tt> |
130 |
|
|
<tr><td><a href="http://www.ircd-ratbox.org/">ircd-ratbox</a> |
131 |
|
|
<font size=-2>[<tt>www.ircd-ratbox.org</tt>]</font>2.1.x and later |
132 |
|
|
<font color=red>(***)</font> |
133 |
|
|
<td align=center><tt>ratbox</tt> |
134 |
|
|
<tr><td><a href="http://www.solid-ircd.com/">solid-ircd</a> |
135 |
|
|
<font size=-2>[<tt>www.solid-ircd.com</tt>]</font>, all versions |
136 |
|
|
<font color=red>(*)</font> |
137 |
|
|
<td align=center><tt>ratbox</tt> |
138 |
|
|
<tr><td><a href="http://tr-ircd.sourceforge.net/">tr-ircd</a> |
139 |
|
|
<font size=-1>[<tt>tr-ircd.sourceforge.net</tt>]</font> 5.7 and |
140 |
|
|
later<br> |
141 |
|
|
<td align=center><tt>trircd</tt> |
142 |
|
|
<tr><td><i>UltimateIRCD 2.8.1</i> |
143 |
|
|
<td align=center><tt>dreamforge</tt> |
144 |
|
|
<tr><td><i>UltimateIRCD 3.0.0</i> |
145 |
|
|
<td align=center><tt>bahamut</tt> |
146 |
|
|
<tr><td><a href="http://www.unrealircd.com/">UnrealIRCd</a> |
147 |
|
|
<font size=-1>[<tt>www.unrealircd.com</tt>]</font> 3.1.1 and later |
148 |
|
|
<td align=center><tt>unreal</tt> |
149 |
|
|
</table> |
150 |
|
|
(servers listed in <i>italics</i> are listed based on user reports, but are <b>not supported</b>) |
151 |
|
|
</div> |
152 |
|
|
|
153 |
|
|
<p><font color=red>(*)</font> When using Bahamut or solid-ircd, <b>do |
154 |
|
|
not</b> configure your server as a "services hub" ("<tt>servtype |
155 |
|
|
serviceshub</tt>" in the <tt>ircd.conf</tt> file); this setting causes |
156 |
|
|
Bahamut and solid-ircd to not send certain information needed by Services |
157 |
|
|
to work correctly. If Services detects that your server is configured as a |
158 |
|
|
services hub, it will log a message to that effect and abort. |
159 |
|
|
|
160 |
|
|
<p><font color=red>(**)</font> To use Hybrid with Services, you must load |
161 |
|
|
the <tt>m_tburst.so</tt> module in your server's configuration. In recent |
162 |
|
|
versions of Hybrid (at least 7.2.3), this module is compiled automatically; |
163 |
|
|
in earlier versions, you may need to locate and compile it yourself. If |
164 |
|
|
the module is not loaded, Services will refuse to connect to the server. |
165 |
|
|
|
166 |
|
|
<p><font color=red>(***)</font> When using ircd-ratbox, make sure to |
167 |
|
|
include the "<tt>topicburst</tt>" server flag in the <tt>connect</tt> block |
168 |
|
|
for Services on the remote server; if topic burst support is not enabled, |
169 |
|
|
Services will refuse to connect to the server. Also, forced nickname |
170 |
|
|
changing will be unavailable unless all servers are compiled with the |
171 |
|
|
"<tt>--enable-services</tt>" option. |
172 |
|
|
|
173 |
|
|
<p align=right><font size="-1"><a href="#top">Back to top</a></font> |
174 |
|
|
|
175 |
|
|
<p><hr> |
176 |
|
|
|
177 |
|
|
<a name=2></a> |
178 |
|
|
<h3>2-2. Installing Services from a binary distribution</h3> |
179 |
|
|
|
180 |
|
|
<p>Binary distributions of Services are provided for Linux systems in the |
181 |
|
|
popular RPM and .deb formats. See the <a href="1.html#3">Services home |
182 |
|
|
page</a> to download the latest binary distribution, then install or |
183 |
|
|
upgrade it the same way you would for any other package. |
184 |
|
|
|
185 |
|
|
<p>Note that executable files in the binary distributions are compiled |
186 |
|
|
statically; this means that they will work on any modern system regardless |
187 |
|
|
of version, at the cost of requiring slightly more disk space and runtime |
188 |
|
|
memory, and requiring an upgrade (or recompile from source) if a bug is |
189 |
|
|
found in any of the system libraries used by Services. |
190 |
|
|
|
191 |
|
|
<p align=right><font size="-1"><a href="#top">Back to top</a></font> |
192 |
|
|
|
193 |
|
|
<p><hr> |
194 |
|
|
|
195 |
|
|
<a name=3></a> |
196 |
|
|
<h3>2-3. Installing Services from the source code</h3> |
197 |
|
|
|
198 |
|
|
<p>If no binary distribution is available for your platform or you prefer to |
199 |
|
|
compile Services yourself, you will need to install from the source code. |
200 |
|
|
Once you have <a href="1.html#3">downloaded the source</a>, you need to: |
201 |
|
|
|
202 |
|
|
<p><ol> |
203 |
|
|
<li><b>Run the <tt>configure</tt> script.</b> This script checks what |
204 |
|
|
type of system you are running and determines what adjustments to the base |
205 |
|
|
source code are necessary in order to compile. Certain compile-time |
206 |
|
|
settings can be set by passing command-line options to the script; the most |
207 |
|
|
common ones are: |
208 |
|
|
<ul><li><tt>-ignore-cache</tt> (ignore the results of any previous |
209 |
|
|
configuration; use this if your system configuration has changed) |
210 |
|
|
<li><tt>-prefix <i>pathname</i></tt> (set default installation location) |
211 |
|
|
<li><tt>-use-static-modules</tt> (compile using statically-linked |
212 |
|
|
modules, even if dynamic linking is available) |
213 |
|
|
<li><tt>-[no-]sorted-lists</tt> (select between sorted nickname/channel |
214 |
|
|
lists and unsorted ones; <tt>-sorted-lists</tt> is the default, but |
215 |
|
|
on large networks, keeping the lists sorted can slow down Services |
216 |
|
|
significantly) |
217 |
|
|
</ul> |
218 |
|
|
See Table 2-2 below for a full list of options, which can also be obtained |
219 |
|
|
with <tt>./configure -help</tt>. (If you prefer the GNU autoconf |
220 |
|
|
"<tt>--<i>option</i>[=<i>value</i>]</tt>" format, <tt>configure</tt> will |
221 |
|
|
accept that as well, <i>e.g.</i> "<tt>--prefix=/usr</tt>".) Note that |
222 |
|
|
<tt>configure</tt> will ignore environment variables like <tt>CC</tt> and |
223 |
|
|
<tt>CFLAGS</tt>; use the appropriate command-line options instead if you |
224 |
|
|
need to set these yourself. |
225 |
|
|
|
226 |
|
|
<p><b>Note on using alternate C compilers:</b> If you specify a particular |
227 |
|
|
C compiler using the <tt>-cc</tt> option, or if GCC is not installed on |
228 |
|
|
your system, you will also need to specify any necessary options using the |
229 |
|
|
<tt>-cflags</tt> option. In particular, Services uses a feature of C known |
230 |
|
|
as "pointer aliasing", which is technically forbidden by the C standard but |
231 |
|
|
necessary for clean programming. Some compilers attempt to optimize based |
232 |
|
|
on the assumption that pointer aliasing is not used; if your compiler does |
233 |
|
|
this, you will need to tell it not to. |
234 |
|
|
|
235 |
|
|
<a name="table2-2"></a> |
236 |
|
|
<div align=center> |
237 |
|
|
<b>Table 2-2.</b> Options to the <tt>configure</tt> script<br><br> |
238 |
|
|
<table border=1> |
239 |
|
|
<tr><th>Option<th>Description |
240 |
|
|
|
241 |
|
|
<tr><th colspan=2>Controlling the <tt>configure</tt> script |
242 |
|
|
<tr><td><tt>-help</tt> |
243 |
|
|
<td>Displays a list of command-line options and their meanings, then |
244 |
|
|
exits. |
245 |
|
|
<tr><td><tt>-ignore-cache</tt> |
246 |
|
|
<td>Prevents the cache file from being read. (The cache file, |
247 |
|
|
<tt>config.cache</tt>, is created the first time you run the |
248 |
|
|
<tt>configure</tt> script, and saves the results of configuration |
249 |
|
|
to speed up the script the next time you run it.) |
250 |
|
|
|
251 |
|
|
<tr><th colspan=2>Controlling compilation |
252 |
|
|
<tr><td><tt>-cc <i>PROGRAM</i></tt> |
253 |
|
|
<td>Specifies the C compiler to use, such as <tt>cc</tt> or <tt>gcc</tt>. |
254 |
|
|
If this option is given, the ordinary check for a compiler is |
255 |
|
|
skipped, and the given compiler is used. This option also causes |
256 |
|
|
the cached values of <tt>CFLAGS</tt> (compiler options) and |
257 |
|
|
<tt>LFLAGS</tt> (linker options) to be ignored; these options will |
258 |
|
|
revert to the defaults, unless the <tt>-cflags</tt> or |
259 |
|
|
<tt>-lflags</tt> options are also given. |
260 |
|
|
<tr><td><tt>-cflags <i>CFLAGS</i></tt> |
261 |
|
|
<td>Specifies command-line options to pass to the compiler when |
262 |
|
|
compiling source files. The default depends on the compiler, but |
263 |
|
|
typically includes standard optimization flags, such as <tt>-O2</tt> |
264 |
|
|
for GCC. |
265 |
|
|
<tr><td><tt>-lflags <i>LFLAGS</i></tt> |
266 |
|
|
<td>Specifies command-line options to pass to the compiler when linking |
267 |
|
|
executable files. The default is no flags. |
268 |
|
|
<tr><td><tt>-libs <i>LIBS</i></tt> |
269 |
|
|
<td>Specifies any extra libraries to be used when linking the main |
270 |
|
|
Services executable, using the linker library options <tt>-L</tt> |
271 |
|
|
and <tt>-l</tt>. Normally there is no need to use this option. |
272 |
|
|
<tr><td><tt>-os2</tt> |
273 |
|
|
<td>Specifies that the system on which Services is being compiled is |
274 |
|
|
an OS/2 system. On such systems, Services may not compile |
275 |
|
|
correctly without this switch. |
276 |
|
|
|
277 |
|
|
<tr><th colspan=2>Controlling installation |
278 |
|
|
<tr><td><tt>-program <i>NAME</i></tt> |
279 |
|
|
<td>Specifies the name to be used for the executable file (default: |
280 |
|
|
<tt>ircservices</tt>). The configuration file |
281 |
|
|
<tt>ircservices.conf</tt> and the <tt>ircservices-chk</tt> script (see |
282 |
|
|
<a href="#6-ircservices-chk">section 2-6</a>) will also be renamed |
283 |
|
|
to <tt><i>NAME</i>.conf</tt> and <tt><i>NAME</i>-chk</tt>; the |
284 |
|
|
installation directories selected by the <tt>-prefix</tt> option |
285 |
|
|
(see below) will be changed to match; and the example configuration |
286 |
|
|
files will use the given name in the default log, PID, and MOTD |
287 |
|
|
files. |
288 |
|
|
<tr><td><tt>-bindest <i>DIR</i></tt> |
289 |
|
|
<td>Specifies the directory to be used for program file installation. |
290 |
|
|
The main <tt>ircservices</tt> executable file and the |
291 |
|
|
<tt>ircservices-chk</tt> script will be installed in this directory. |
292 |
|
|
<tr><td><tt>-datdest <i>DIR</i></tt> |
293 |
|
|
<td>Specifies the directory to be used for data file installation. All |
294 |
|
|
Services files and subdirectories except the two program files |
295 |
|
|
listed above will be installed in this directory. |
296 |
|
|
<tr><td><tt>-prefix <i>DIR</i></tt> |
297 |
|
|
<td>Specifies the directory to be used for installation as a GNU-style |
298 |
|
|
installation prefix. Program files will be installed in |
299 |
|
|
<tt><i>DIR</i>/sbin</tt>, and data files will be installed in |
300 |
|
|
<tt><i>DIR</i>/lib/ircservices</tt> (or |
301 |
|
|
<tt><i>DIR</i>/lib/<i>NAME</i></tt>, where <tt><i>NAME</i></tt> is |
302 |
|
|
the executable name given to the <tt>-program</tt> option). If |
303 |
|
|
this option is given, the <tt>-bindest</tt> and <tt>-datdest</tt> |
304 |
|
|
options are ignored. |
305 |
|
|
|
306 |
|
|
<tr><th colspan=2>Controlling Services features (use <tt>-no-<i>option</i></tt> |
307 |
|
|
to disable) |
308 |
|
|
<tr><td><tt>-use-local-funcs</tt> |
309 |
|
|
<td>Forces the use of compatibility functions over system library |
310 |
|
|
functions. Normally, Services will use all system library |
311 |
|
|
functions available, except when a bug is detected in one of the |
312 |
|
|
functions; if this option is given, Services will instead make use |
313 |
|
|
of its own versions of these functions. This can be useful when |
314 |
|
|
debugging Services, or if you suspect a bug in the system libraries. |
315 |
|
|
<tr><td><tt>-use-static-modules</tt> |
316 |
|
|
<td>Forces modules to be compiled statically, even if dynamic modules |
317 |
|
|
could be used. Using static modules results in a larger executable |
318 |
|
|
file and more memory usage than using dynamic modules, but may be |
319 |
|
|
marginally faster. On some systems, dynamic modules are not |
320 |
|
|
supported, and modules will be compiled statically even if |
321 |
|
|
<tt>-no-use-static-modules</tt> is given. |
322 |
|
|
<tr><td><tt>-sorted-lists</tt> |
323 |
|
|
<td>Causes Services to keep the nickname and channel lists sorted; this |
324 |
|
|
can cause a performance penalty on large networks. <b>Enabled by |
325 |
|
|
default</b> (use <tt>-no-sorted-lists</tt> to disable). |
326 |
|
|
<tr><td><tt>-clean-compile</tt> |
327 |
|
|
<td>Attempts to compile Services with no compiler warnings; this may |
328 |
|
|
cause a slight performance penalty. <b>Enabled by default</b> (use |
329 |
|
|
<tt>-no-clean-compile</tt> to disable). |
330 |
|
|
<tr><td><tt>-memchecks</tt> |
331 |
|
|
<td>Performs extra checks on memory allocation. This option is |
332 |
|
|
intended for debugging only, and causes a significant performance |
333 |
|
|
penalty. |
334 |
|
|
<tr><td><tt>-showallocs</tt> |
335 |
|
|
<td>Causes all memory allocation activity to be logged to the Services |
336 |
|
|
logfile. This option is intended for debugging only, and will |
337 |
|
|
generate extremely large log files. This option is ignored unless |
338 |
|
|
<tt>-memchecks</tt> is enabled. |
339 |
|
|
<tr><td><tt>-dumpcore</tt> |
340 |
|
|
<td>Causes Services to attempt to write a core file if it crashes. |
341 |
|
|
This option can be useful in obtaining a backtrace to aid |
342 |
|
|
debugging; however, it prevents Services from shutting down |
343 |
|
|
cleanly, so you will not see a "shutting down" notice from Services |
344 |
|
|
when it detects a crash. |
345 |
|
|
|
346 |
|
|
<tr><th colspan=2>Other options |
347 |
|
|
<tr><td><tt>-check</tt> |
348 |
|
|
<td>Checks whether this script has already been run and whether the |
349 |
|
|
cache is up-to-date. Exits with status 0 if up-to-date, 1 if not. |
350 |
|
|
This option is used by the Makefile to ensure that the |
351 |
|
|
<tt>configure</tt> script is run before compilation. |
352 |
|
|
|
353 |
|
|
</table> |
354 |
|
|
</div> |
355 |
|
|
|
356 |
|
|
<p>When the script starts up, it will first determine the directories in |
357 |
|
|
which Services should be installed. These can be specified either through |
358 |
|
|
the <tt>-bindest</tt>/<tt>-datdest</tt> options or the <tt>-prefix</tt> |
359 |
|
|
option; if none of these are present, the script will use the same |
360 |
|
|
directories as when you last ran the script (if you have not run the script |
361 |
|
|
before or you use the <tt>-ignore-cache</tt> option, the defaults are |
362 |
|
|
<tt>/usr/local/sbin</tt> for the executable program and |
363 |
|
|
<tt>/usr/local/lib/ircservices</tt> for the data files). |
364 |
|
|
|
365 |
|
|
<p>After setting the installation directories, <tt>configure</tt> will |
366 |
|
|
check your system and print out status messages as it proceeds. At the |
367 |
|
|
end, if no errors occur, it will print out a message telling you to |
368 |
|
|
proceed with compilation. |
369 |
|
|
|
370 |
|
|
<p><li><b>Edit <tt>defs.h</tt> and the <tt>Makefile</tt>, if necessary</b>. |
371 |
|
|
There are a few settings at the top of these files which can be changed as |
372 |
|
|
needed. Usually, however, there is no need to change them, and you can |
373 |
|
|
proceed directly to compilation. |
374 |
|
|
|
375 |
|
|
<p>One case in which you may want to modify a setting is if you run a |
376 |
|
|
regional network which uses a language other than English as its primary |
377 |
|
|
language; in this case, you can change the <tt>DEF_LANGUAGE</tt> setting in |
378 |
|
|
<tt>defs.h</tt> to your local langauge. |
379 |
|
|
|
380 |
|
|
<p><li><b>Compile the program.</b> Run the command <tt>make</tt> (or |
381 |
|
|
<tt>gmake</tt>, depending on your system) from the top-level directory. |
382 |
|
|
Compilation time will vary depending on your system; on the author's system |
383 |
|
|
(Athlon64X2 4400+, 2GB RAM), compiling the entire program takes |
384 |
|
|
approximately one minute. If you have a multiple-processor system, you can |
385 |
|
|
use <tt>make -j<i>N</i></tt> (or <tt>gmake -j<i>N</i></tt>) to compile in |
386 |
|
|
parallel using <tt><i>N</i></tt> threads, which will significantly reduce |
387 |
|
|
compilation time. Parallel compilation is also useful if your system has |
388 |
|
|
slow I/O (such as disk access), since it lets one compilation run while |
389 |
|
|
another is waiting for a disk access to complete. |
390 |
|
|
|
391 |
|
|
<p><li><b>Install the program and data files.</b> Run the command <tt>make |
392 |
|
|
install</tt> (or <tt>gmake install</tt>) and the program and data files |
393 |
|
|
will be copied to their destinations. The program file is installed as |
394 |
|
|
<tt>ircservices</tt> in the program installation directory; the data |
395 |
|
|
installation directory will contain sample configuration files (see |
396 |
|
|
<a href="#4">section 2-4</a>), language data files, the |
397 |
|
|
<a href="5.html#3"><tt>convert-db</tt></a> utility, and (if you compiled |
398 |
|
|
modules with dynamic linking, which is the default on systems which support |
399 |
|
|
it) module files. |
400 |
|
|
|
401 |
|
|
<p>Note that if you are compiling the program as the same user you will |
402 |
|
|
install as, you can just use the single command <tt>make install</tt> to |
403 |
|
|
compile and install in one step. |
404 |
|
|
|
405 |
|
|
<p>If you need to install Services to a separate subtree, for example when |
406 |
|
|
setting up Services in a chroot'd environment, set the |
407 |
|
|
<tt>INSTALL_PREFIX</tt> variable on the <tt>make</tt> command line. For |
408 |
|
|
example, if the installation prefix is set as <tt>/usr/local</tt>, then: |
409 |
|
|
<br><tt> make install INSTALL_PREFIX=/usr/local/chroot/</tt> |
410 |
|
|
<br>will install files into <tt>/usr/local/chroot/usr/local/bin</tt> and |
411 |
|
|
<tt>/usr/local/chroot/usr/local/lib/ircservices</tt>. (The path given <i>must</i> include a trailing slash.) |
412 |
|
|
|
413 |
|
|
</ol> |
414 |
|
|
|
415 |
|
|
<p align=right><font size="-1"><a href="#top">Back to top</a></font> |
416 |
|
|
|
417 |
|
|
<p><hr> |
418 |
|
|
|
419 |
|
|
<a name=4></a> |
420 |
|
|
<h3>2-4. Configuring Services</h3> |
421 |
|
|
|
422 |
|
|
<p>Once Services has been installed, it must be configured for your |
423 |
|
|
network. Services uses two text files to control its behavior: |
424 |
|
|
<tt>ircservices.conf</tt> and <tt>modules.conf</tt>. (If Services is |
425 |
|
|
configured with a different program name, the first file's name will |
426 |
|
|
change to <tt><i>program-name</i>.conf</tt> as well; however, in this |
427 |
|
|
manual, the default of <tt>ircservices.conf</tt> is assumed.) |
428 |
|
|
<tt>ircservices.conf</tt> contains settings that affect Services as a |
429 |
|
|
whole, such as the remote server to connect to; <tt>modules.conf</tt> |
430 |
|
|
contains settings that apply to individual modules, such as NickServ and |
431 |
|
|
ChanServ. These files are stored in the Services data directory (the |
432 |
|
|
directory you gave when running the <tt>configure</tt> script; this is |
433 |
|
|
<tt>/var/opt/ircservices</tt> for the binary distributions). |
434 |
|
|
|
435 |
|
|
<p>When Services is installed, two sample files, |
436 |
|
|
<tt>example-ircservices.conf</tt> and <tt>example-modules.conf</tt>, are |
437 |
|
|
installed in the data directory. If you are installing Services for the |
438 |
|
|
first time, you should start out by copying or renaming these files to |
439 |
|
|
<tt>ircservices.conf</tt> and <tt>modules.conf</tt> respectively. Each file |
440 |
|
|
contains detailed information about all possible settings, which can also |
441 |
|
|
be found in <a href=a.html>Appendix A</a>. When setting up Services for |
442 |
|
|
the first time, you should at least check these settings: |
443 |
|
|
|
444 |
|
|
<div align=center> |
445 |
|
|
<b>Table 2-3.</b> Commonly used configuration directives<br><br> |
446 |
|
|
<table border=1> |
447 |
|
|
<tr><th>File<th>Setting and syntax<th>Description |
448 |
|
|
<tr><td><tt>ircservices.conf</tt> |
449 |
|
|
<td><tt>RemoteServer <i>host</i>[:<i>port</i>] <i>password</i></tt> |
450 |
|
|
<td>Sets the server to which Services connects and the password used to |
451 |
|
|
connect. |
452 |
|
|
<tr><td><tt>ircservices.conf</tt> |
453 |
|
|
<td><tt>ServerName <i>name</i></tt> |
454 |
|
|
<td>Sets the server name Services will use on the IRC network. |
455 |
|
|
<tr><td><tt>ircservices.conf</tt> |
456 |
|
|
<td><tt>ServerDesc <i>description</i></tt> |
457 |
|
|
<td>Sets the server description provided by Services. |
458 |
|
|
<tr><td><tt>ircservices.conf</tt> |
459 |
|
|
<td><tt>ServiceUser <i>user</i>@<i>host</i></tt> |
460 |
|
|
<td>Sets the username and hostname used by Services clients. You may |
461 |
|
|
want to set this to an E-mail address at which users can ask |
462 |
|
|
questions about Services or your IRC network. |
463 |
|
|
<tr><td><tt>ircservices.conf</tt> |
464 |
|
|
<td><tt>LoadModule <i>module-name</i></tt> |
465 |
|
|
<td>Loads the specified module. The example configuration file lists |
466 |
|
|
all of the possible modules; select which ones you want to load or |
467 |
|
|
not load. In particular, make sure you select the correct protocol |
468 |
|
|
module and enter its name in the line which reads |
469 |
|
|
"<tt>LoadModule protocol/(insert protocol name here)</tt>" |
470 |
|
|
or Services will not be able to start. |
471 |
|
|
<tr><td height=3> |
472 |
|
|
<tr><td><tt>modules.conf</tt> |
473 |
|
|
<td><tt>Module protocol/<i>protocol-name</i></tt> |
474 |
|
|
<td>Change this line (the first <tt>Module</tt> line in the file) so it |
475 |
|
|
contains the same protocol module you specified in |
476 |
|
|
<tt>ircservices.conf</tt>. |
477 |
|
|
<tr><td><tt>modules.conf</tt> |
478 |
|
|
<td><tt>FromAddress <i>user</i>@<i>host</i></tt> |
479 |
|
|
<td><tt>mail/main</tt> module: Sets the E-mail address used as the |
480 |
|
|
sender on outgoing mail. Set this to an address at which users can |
481 |
|
|
contact you with questions about Services. |
482 |
|
|
<tr><td><tt>modules.conf</tt> |
483 |
|
|
<td><tt>FromName "<i>name</i>"</tt> |
484 |
|
|
<td><tt>mail/main</tt> module: Set this to the "name" you want to use |
485 |
|
|
as the sender on outgoing mail. If you don't want a name (just the |
486 |
|
|
E-mail address), leave this setting commented out. |
487 |
|
|
<tr><td><tt>modules.conf</tt> |
488 |
|
|
<td><tt>ServicesRoot <i>nick</i></tt> |
489 |
|
|
<td><tt>operserv/main</tt> module: Set this to the nickname which |
490 |
|
|
should be granted Services root (super-user) privileges. |
491 |
|
|
<tr><td><tt>modules.conf</tt> |
492 |
|
|
<td><tt>ListenTo <i>address</i>:<i>port</i></tt> |
493 |
|
|
<td><tt>httpd/main</tt> module: Sets the ports to which the Services |
494 |
|
|
HTTP server will listen. See <a href="3.html#6">section 3-6</a> |
495 |
|
|
for details. |
496 |
|
|
</table> |
497 |
|
|
</div> |
498 |
|
|
|
499 |
|
|
<p align=right><font size="-1"><a href="#top">Back to top</a></font> |
500 |
|
|
|
501 |
|
|
<p><hr> |
502 |
|
|
|
503 |
|
|
<a name=5></a> |
504 |
|
|
<h3>2-5. Configuring your IRC server</h3> |
505 |
|
|
|
506 |
|
|
<p>The IRC server to which Services will connect must be configured to |
507 |
|
|
allow Services to connect as a server. For traditional irc2-based servers, |
508 |
|
|
this involves adding appropriate <tt>C:</tt> and <tt>N:</tt> lines to the |
509 |
|
|
server's configuration file; consult your IRC server program's |
510 |
|
|
documentation for details. |
511 |
|
|
|
512 |
|
|
<p>Some IRC server programs, including traditional irc2-based ones, do not |
513 |
|
|
allow servers to introduce other servers, <i>i.e.</i> act as hubs, without |
514 |
|
|
a special configuration setting (an <tt>H:</tt> line in irc2-based |
515 |
|
|
servers). If this setting is missing from any server in your network, |
516 |
|
|
Services may be disconnected when you use the |
517 |
|
|
<a href="4.html#oper.jupe"><tt>JUPE</tt></a> command. |
518 |
|
|
|
519 |
|
|
<p>In addition, some server programs support a "U-line" or similar concept, |
520 |
|
|
allowing servers named in a <tt>U:</tt> line or other configuration |
521 |
|
|
directive to override normal privilege checks (and consequently preventing |
522 |
|
|
other servers from overriding those checks). If your server program has |
523 |
|
|
such an option, ensure that it is set on all servers in your network, or |
524 |
|
|
you may encounter problems such as ChanServ being unable to change channel |
525 |
|
|
modes. |
526 |
|
|
|
527 |
|
|
<p>Also see the notes in <a href="#table1">table 2-1</a> above for special |
528 |
|
|
considerations when configuring particular types of IRC servers. |
529 |
|
|
|
530 |
|
|
<p><hr> |
531 |
|
|
|
532 |
|
|
<a name=6></a> |
533 |
|
|
<h3>2-6. Starting, stopping and controlling Services</h3> |
534 |
|
|
|
535 |
|
|
<p>Services can be started by simply running the <tt>ircservices</tt> |
536 |
|
|
program from a shell prompt. Upon starting, Services will parse its |
537 |
|
|
command-line arguments and the <tt>ircservices.conf</tt> file, then open |
538 |
|
|
the log file; if there are no errors, it will then print a short message to |
539 |
|
|
the terminal, put itself in the background and return control to the shell. |
540 |
|
|
If an error does occur, Services will print an error message and exit. |
541 |
|
|
|
542 |
|
|
<p>Several command-line options can be used to modify Services' behavior or |
543 |
|
|
override settings in the <tt>ircservices.conf</tt> configuration file; these |
544 |
|
|
are summarized in table 2-4 below. The command-line option <tt>-help</tt> |
545 |
|
|
can be used to get a list of all available options. |
546 |
|
|
|
547 |
|
|
<div align=center> |
548 |
|
|
<b>Table 2-4.</b> <tt>ircservices</tt> command-line options<br><br> |
549 |
|
|
<table border=1> |
550 |
|
|
<tr><th>Option<th>Meaning |
551 |
|
|
<tr><td><tt>-help</tt> |
552 |
|
|
<td>Prints a list of available options. |
553 |
|
|
<tr><td><tt>-dir=<i>pathname</i></tt> |
554 |
|
|
<td>Uses <tt><i>pathname</i></tt> as the data directory instead of the |
555 |
|
|
compiled-in default. |
556 |
|
|
<tr><td><tt>-remote=<i>host</i>[:<i>port</i>]</tt> |
557 |
|
|
<td>Connects to the specified server, overriding the |
558 |
|
|
<tt>RemoteServer</tt> setting in <tt>ircservices.conf</tt>. |
559 |
|
|
<tr><td><tt>-log=<i>filename</i></tt> |
560 |
|
|
<td>Writes logging information to <tt><i>filename</i></tt>, overriding |
561 |
|
|
the <tt>LogFilename</tt> setting in <tt>ircservices.conf</tt>. |
562 |
|
|
<tr><td><tt>-debug</tt> |
563 |
|
|
<td>Starts Services in debug mode; using this option multiple times |
564 |
|
|
will produce more debugging output. |
565 |
|
|
<tr><td><tt>-readonly</tt> |
566 |
|
|
<td>Starts Services in read-only mode; database and log files will not |
567 |
|
|
be written to, and online data modification will be limited to |
568 |
|
|
Services administrators. |
569 |
|
|
<tr><td><tt>-nofork</tt> |
570 |
|
|
<td>Prevents Services from forking (going into the background) after |
571 |
|
|
initialization, and causes log messages to be written to the |
572 |
|
|
terminal as well as the log file. |
573 |
|
|
<tr><td><tt>-noexpire</tt> |
574 |
|
|
<td>Disables expiration of database entries (nicknames, channels, |
575 |
|
|
autokills, and so on). |
576 |
|
|
<tr><td><tt>-noakill</tt> |
577 |
|
|
<td>Disables autokill checking. (However, the autokill list itself can |
578 |
|
|
still be modified.) |
579 |
|
|
<tr><td><tt>-forceload</tt> |
580 |
|
|
<td>When using the <tt>database/version4</tt> module, attempts to load |
581 |
|
|
as much data from corrupted databases as possible, rather than |
582 |
|
|
aborting when an error is found. |
583 |
|
|
<tr><td><tt>-encrypt-all</tt> |
584 |
|
|
<td>Re-encrypts all passwords on startup using the encryption type |
585 |
|
|
selected in <tt>ircservices.conf</tt>. (Passwords encrypted with |
586 |
|
|
one type generally cannot be re-encrypted with a different type, so |
587 |
|
|
this is generally useful only to ensure that no passwords are left |
588 |
|
|
unencrypted after activating encryption.) |
589 |
|
|
<tr><td><tt>-import=<i>filename</i></tt> |
590 |
|
|
<td>Imports data into Services' databases (see <a href="5.html#2">section |
591 |
|
|
5-2</a>). |
592 |
|
|
</table> |
593 |
|
|
</div> |
594 |
|
|
|
595 |
|
|
<p>Once in the background, Services will load language files and modules, |
596 |
|
|
then try to connect to the remote server specified in <tt>ircservices.conf</tt> |
597 |
|
|
(or on the command line). If any errors occur during these steps, an error |
598 |
|
|
message will be printed to the log file and Services will terminate. If |
599 |
|
|
Services appears to start up correctly but does not connect to your IRC |
600 |
|
|
network, check the log file for any errors that may have occurred. |
601 |
|
|
|
602 |
|
|
<p>Once Services successfully connects to your IRC network, it will |
603 |
|
|
continue running until either: |
604 |
|
|
<ul><li>the remote server closes the connection (for example, because of a |
605 |
|
|
<tt>/SQUIT</tt> command); |
606 |
|
|
<li>an OperServ <a href="4.html#oper.restart"><tt>RESTART</tt></a>, |
607 |
|
|
<a href="4.html#oper.shutdown"><tt>SHUTDOWN</tt></a>, or |
608 |
|
|
<a href="4.html#oper.quit"><tt>QUIT</tt></a> command is received; or |
609 |
|
|
<li>a termination signal (<tt>SIGINT</tt> [<tt>^C</tt>], |
610 |
|
|
<tt>SIGQUIT</tt>, <tt>SIGTERM</tt>, or <tt>SIGKILL</tt>, as well as |
611 |
|
|
fatal program errors) is received. |
612 |
|
|
</ul> |
613 |
|
|
In any of these cases (except in the case of a <tt>SIGKILL</tt> signal, |
614 |
|
|
which Services cannot detect), an appropriate message will be written to |
615 |
|
|
the log file describing why Services terminated. |
616 |
|
|
|
617 |
|
|
<p>The debug output level and read-only setting can be modified while |
618 |
|
|
Services is running using the OperServ |
619 |
|
|
<a href="4.html#oper.set"><tt>SET</tt></a> command as needed, and other |
620 |
|
|
OperServ commands can be used to monitor the status of Services or (as |
621 |
|
|
mentioned above) shut down or restart Services. |
622 |
|
|
|
623 |
|
|
<p>While it is running, Services will periodically save modified data |
624 |
|
|
(newly registered nicknames and channels, modified settings, and so on) to |
625 |
|
|
disk. This is done in such a way that even if Services crashes while |
626 |
|
|
writing the data, the previous contents of the databases will remain intact. |
627 |
|
|
However, should the database files become corrupt (whether because of a bug |
628 |
|
|
in Services or as the result of hardware failure or tampering), the |
629 |
|
|
<tt>-forceload</tt> command-line option can be used to recover as much data |
630 |
|
|
as possible from the corrupted data file. It is also <b>strongly |
631 |
|
|
recommended</b> that you make regular backups of your data files, to reduce |
632 |
|
|
potential damage from such problems. |
633 |
|
|
|
634 |
|
|
<p>If the contents of the <tt>ircservices.conf</tt> or <tt>modules.conf</tt> |
635 |
|
|
configuration files are changed, Services can be instructed to reread the |
636 |
|
|
files with either the OperServ |
637 |
|
|
<a href="4.html#oper.rehash"><tt>REHASH</tt></a> command or the |
638 |
|
|
<tt>SIGHUP</tt> signal. If no errors are found in the configuration files, |
639 |
|
|
Services' settings will be updated with the new configuration file |
640 |
|
|
contents. Modules can also be loaded and unloaded this way without |
641 |
|
|
restarting Services by adding or removing <tt>LoadModule</tt> directives in |
642 |
|
|
<tt>ircservices.conf</tt>; however, modules will not be able to be unloaded |
643 |
|
|
if other loaded modules depend on them. (For example, since the ChanServ |
644 |
|
|
module depends on NickServ being available, you cannot remove the NickServ |
645 |
|
|
module while leaving the ChanServ module loaded. You can, however, unload |
646 |
|
|
both of them at once.) |
647 |
|
|
|
648 |
|
|
<a name="6-ircservices-chk"></a> |
649 |
|
|
<p>If the system Services runs on supports periodic execution of programs, |
650 |
|
|
such as via the <tt>cron</tt> utility, you can use the supplied script |
651 |
|
|
<tt>ircservices-chk</tt>, installed in the same directory as the |
652 |
|
|
<tt>ircservices</tt> executable, to ensure that Services comes back up |
653 |
|
|
quickly if it should crash or otherwise terminate unexpectedly. (Of |
654 |
|
|
course, you will need to disable this check if you ever shut down Services |
655 |
|
|
intentionally!) On a typical Unix system, the following line, when added |
656 |
|
|
using the <tt>crontab</tt> utility, will cause the <tt>ircservices-chk</tt> |
657 |
|
|
script to be run once every five minutes (here, |
658 |
|
|
<tt>/path/to/ircservices-chk</tt> represents the full path to the |
659 |
|
|
<tt>ircservices-chk</tt> script): |
660 |
|
|
|
661 |
|
|
<div align=center> |
662 |
|
|
<blockquote> |
663 |
|
|
<tt>0,5,10,15,20,25,30,35,40,45,50,55 * * * * /path/to/ircservices-chk</tt> |
664 |
|
|
</blockquote> |
665 |
|
|
</div> |
666 |
|
|
|
667 |
|
|
<p>If you need to pass options to the <tt>ircservices</tt> executable, |
668 |
|
|
simply add them after <tt>ircservices-chk</tt> in the line above. You can |
669 |
|
|
also prevent the script from generating output (which would be sent to you |
670 |
|
|
by mail) by adding the <tt>-q</tt> option after <tt>ircservices-chk</tt> |
671 |
|
|
and before any other options. |
672 |
|
|
|
673 |
|
|
<p align=right><font size="-1"><a href="#top">Back to top</a></font> |
674 |
|
|
|
675 |
|
|
<p><hr> |
676 |
|
|
|
677 |
|
|
<p align=right><font size=-1><a href="1.html">Previous section: About IRC Services</a> | |
678 |
|
|
<a href="index.html">Table of Contents</a> | |
679 |
|
|
<a href="3.html">Next section: Overview of Services features</a></font> |
680 |
|
|
|
681 |
|
|
</body> |
682 |
|
|
</html> |