1 2*** Information about installing PFinger *** 3 41. Compiling 5 6First step is to compile the package. Do the following: 7 8in the PFinger top level directory execute: 9 10 ./configure GNU configuration script (see also Chapter 5) 11 make Build the package 12 13Configure is the common GNU configuration script, which attempts to 14guess what your system needs for compilation of PFinger. 15 16Configure takes several standard options, see Chapter 5 below. 17 18Non-standard options to configure: 19 20--without-server Only build the client 21 Don't build in.fingerd and fingerd 22 23--without-client Only build the server 24 Don't build pfinger 25 26Default is to build both. The standard (non-graphical) finger client is 27always built. 28 29If GTK is not found, the client is automatically not made. If you 30nevertheless run into problems, try to specify --without-client as 31option to configure. 32 332. Installing the binaries 34 35For installing the binaries in /usr/local/bin (pfinger and finger) and 36/usr/local/sbin (in.fingerd and fingerd) execute: 37 38make install 39 403. Server Configuration 41 423.1 inetd.conf 43 44Modify /etc/inetd.conf to contain the following line: 45 46finger stream tcp nowait nobody /usr/sbin/tcpd /usr/sbin/in.fingerd 47 48(this may vary on your platform, see inetd.conf(5)) 49 50Remember to let inetd reread its config file. 51 523.2 /etc/fingerconf 53 54Create a global confguration file for your host. Start by modifying the 55sample fingerconf in this directory. 56 573.2.1 Format 58 59The fingerconf file is a simple XML-like file. This means every option 60has the form <option>value</option>. 61 623.2.2 Most important options 63 64<siteinfo> Contains a text that is displayed for a 65 "finger .site@sample.org" 66 67<specialfile> Special "dot"-Files in the users home directory 68 that can be retrieved with finger 69 (e.g. finger user.pgpkey@sample.org returns the 70 file ~user/.pgpkey, if pgpkey is defined as 71 special file) 72 73<option> enables an option: 74 showidle: Display the idle-time of the users 75 showfrom: Display from where a user is connected 76 hidemail: Hide the user mail information 77 hideall: Do not answer "finger @host" 78 79<dbpath> see section 3.3 80 81<sitehost> see section 3.5 82<clientlist> 83<client> 84<poll> 85 86<sitemaster> same as <sitehost> (backwards compatibilty) 87 883.3 /usr/share/finger/statusdb 89 90PFinger uses a database to store the users that are logged in on a 91remote host. Its default path is /usr/share/finger/. However if you 92are using GNU Finger compatibility mode (see below) the default is 93/usr/local/etc/fingerdir/. The default path can be overridden in the 94configfile with the directive <dbpath>/path/to/dbdir/</dbpath>. 95 96The file must be writable by the Site Finger Deamon (see below) and 97readable by the finger deamon. 98 99If you are not using PFinger as a Site deamon the statusdb file is not 100entirely necessary but the deamon will complain about it in the 101syslog. 102 1033.4 GNU Finger compatibility 104 105Enable GNU Finger compatibility mode by starting in.fingerd with the 106"-g" option. (Set this in the inetd.conf). Further explanation of 107this mode can be found in the README. 108 1093.5 Site Finger Deamon 110 111PFinger provides a site finger deamon, which allows you to provide 112finger information for a whole cluster at a single host. We call the 113hosts of the cluster "clients" and the Server were the fingerd 114programs runs "master". 115 116Example Scenario: 117 118We have several Computers in a laboratory. All computers have the same 119configuration (e.g. the same logins). None of them is assigned to a 120single person. This means it is not predictable which host someone 121will use, which makes the finger service somewhat unusable. 122Now we are able to install the PFinger in.fingerd on all hosts and 123the PFinger fingerd on a Server. Now everyone can query the Server and 124gets the same information as if he or she were querying all hosts of 125the cluster. 126 127Installation: 128 129- On every client you need to install the "in.fingerd" program as shown 130 above. Also you need on every host a simple configuration file 131 pointing to the master: 132 Example /etc/fingerconf: 133 <fingerconf> 134 <sitehost>master_hostname</sitehost> 135 </fingerconf> 136 137- On the master you need to run the "fingerd" program. This program 138 automatically gathers the online information from the clients all 30 139 seconds (configurable). 140 The users need not to be able to log into the master. They must 141 however be known (via /etc/passwd, yp/NIS or similar). 142 143 In the /etc/fingerconf file you need to specify 144 145 - for every client: 146 <client>client_hostname</client> in the <clientlist> directive 147 148 - for another interval than 30 seconds: 149 <poll>seconds</poll> 150 151 Exapmle /etc/fingerconf: 152 (Poll clients (lab1 and lab2) all 150 seconds) 153 154 <fingerconf> 155 <poll>150</poll> 156 <clientlist> 157 <client>lab1</client> 158 <client>lab2</client> 159 </clientlist> 160 </fingerconf> 161 1624. Users 163 164Users may have a ".fingerconf" in their home-directory. The easiest way to 165create this, is to use the pfinger client. 166 1675. Information about configure 168 169Basic Installation 170================== 171 172 These are generic installation instructions. 173 174 The `configure' shell script attempts to guess correct values for 175various system-dependent variables used during compilation. It uses 176those values to create a `Makefile' in each directory of the package. 177It may also create one or more `.h' files containing system-dependent 178definitions. Finally, it creates a shell script `config.status' that 179you can run in the future to recreate the current configuration, a file 180`config.cache' that saves the results of its tests to speed up 181reconfiguring, and a file `config.log' containing compiler output 182(useful mainly for debugging `configure'). 183 184 If you need to do unusual things to compile the package, please try 185to figure out how `configure' could check whether to do them, and mail 186diffs or instructions to the address given in the `README' so they can 187be considered for the next release. If at some point `config.cache' 188contains results you don't want to keep, you may remove or edit it. 189 190 The file `configure.in' is used to create `configure' by a program 191called `autoconf'. You only need `configure.in' if you want to change 192it or regenerate `configure' using a newer version of `autoconf'. 193 194The simplest way to compile this package is: 195 196 1. `cd' to the directory containing the package's source code and type 197 `./configure' to configure the package for your system. If you're 198 using `csh' on an old version of System V, you might need to type 199 `sh ./configure' instead to prevent `csh' from trying to execute 200 `configure' itself. 201 202 Running `configure' takes awhile. While running, it prints some 203 messages telling which features it is checking for. 204 205 2. Type `make' to compile the package. 206 207 3. Optionally, type `make check' to run any self-tests that come with 208 the package. 209 210 4. Type `make install' to install the programs and any data files and 211 documentation. 212 213 5. You can remove the program binaries and object files from the 214 source code directory by typing `make clean'. To also remove the 215 files that `configure' created (so you can compile the package for 216 a different kind of computer), type `make distclean'. There is 217 also a `make maintainer-clean' target, but that is intended mainly 218 for the package's developers. If you use it, you may have to get 219 all sorts of other programs in order to regenerate files that came 220 with the distribution. 221 222Compilers and Options 223===================== 224 225 Some systems require unusual options for compilation or linking that 226the `configure' script does not know about. You can give `configure' 227initial values for variables by setting them in the environment. Using 228a Bourne-compatible shell, you can do that on the command line like 229this: 230 CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure 231 232Or on systems that have the `env' program, you can do it like this: 233 env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure 234 235Compiling For Multiple Architectures 236==================================== 237 238 You can compile the package for more than one kind of computer at the 239same time, by placing the object files for each architecture in their 240own directory. To do this, you must use a version of `make' that 241supports the `VPATH' variable, such as GNU `make'. `cd' to the 242directory where you want the object files and executables to go and run 243the `configure' script. `configure' automatically checks for the 244source code in the directory that `configure' is in and in `..'. 245 246 If you have to use a `make' that does not supports the `VPATH' 247variable, you have to compile the package for one architecture at a time 248in the source code directory. After you have installed the package for 249one architecture, use `make distclean' before reconfiguring for another 250architecture. 251 252Installation Names 253================== 254 255 By default, `make install' will install the package's files in 256`/usr/local/bin', `/usr/local/man', etc. You can specify an 257installation prefix other than `/usr/local' by giving `configure' the 258option `--prefix=PATH'. 259 260 You can specify separate installation prefixes for 261architecture-specific files and architecture-independent files. If you 262give `configure' the option `--exec-prefix=PATH', the package will use 263PATH as the prefix for installing programs and libraries. 264Documentation and other data files will still use the regular prefix. 265 266 In addition, if you use an unusual directory layout you can give 267options like `--bindir=PATH' to specify different values for particular 268kinds of files. Run `configure --help' for a list of the directories 269you can set and what kinds of files go in them. 270 271 If the package supports it, you can cause programs to be installed 272with an extra prefix or suffix on their names by giving `configure' the 273option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 274 275Optional Features 276================= 277 278 Some packages pay attention to `--enable-FEATURE' options to 279`configure', where FEATURE indicates an optional part of the package. 280They may also pay attention to `--with-PACKAGE' options, where PACKAGE 281is something like `gnu-as' or `x' (for the X Window System). The 282`README' should mention any `--enable-' and `--with-' options that the 283package recognizes. 284 285 For packages that use the X Window System, `configure' can usually 286find the X include and library files automatically, but if it doesn't, 287you can use the `configure' options `--x-includes=DIR' and 288`--x-libraries=DIR' to specify their locations. 289 290Specifying the System Type 291========================== 292 293 There may be some features `configure' can not figure out 294automatically, but needs to determine by the type of host the package 295will run on. Usually `configure' can figure that out, but if it prints 296a message saying it can not guess the host type, give it the 297`--host=TYPE' option. TYPE can either be a short name for the system 298type, such as `sun4', or a canonical name with three fields: 299 CPU-COMPANY-SYSTEM 300 301See the file `config.sub' for the possible values of each field. If 302`config.sub' isn't included in this package, then this package doesn't 303need to know the host type. 304 305 If you are building compiler tools for cross-compiling, you can also 306use the `--target=TYPE' option to select the type of system they will 307produce code for and the `--build=TYPE' option to select the type of 308system on which you are compiling the package. 309 310Sharing Defaults 311================ 312 313 If you want to set default values for `configure' scripts to share, 314you can create a site shell script called `config.site' that gives 315default values for variables like `CC', `cache_file', and `prefix'. 316`configure' looks for `PREFIX/share/config.site' if it exists, then 317`PREFIX/etc/config.site' if it exists. Or, you can set the 318`CONFIG_SITE' environment variable to the location of the site script. 319A warning: not all `configure' scripts look for a site script. 320 321Operation Controls 322================== 323 324 `configure' recognizes the following options to control how it 325operates. 326 327`--cache-file=FILE' 328 Use and save the results of the tests in FILE instead of 329 `./config.cache'. Set FILE to `/dev/null' to disable caching, for 330 debugging `configure'. 331 332`--help' 333 Print a summary of the options to `configure', and exit. 334 335`--quiet' 336`--silent' 337`-q' 338 Do not print messages saying which checks are being made. To 339 suppress all normal output, redirect it to `/dev/null' (any error 340 messages will still be shown). 341 342`--srcdir=DIR' 343 Look for the package's source code in directory DIR. Usually 344 `configure' can determine that directory automatically. 345 346`--version' 347 Print the version of Autoconf used to generate the `configure' 348 script, and exit. 349 350`configure' also accepts some other, not widely useful, options. 351