LPRng-HOWTO: 15 Oct 2001 (For LPRng-3.7.9)
Prev | Chapter 2. Installation | Next

# 2.5. Configuration

The LPRng package consists of the following executables and configuration files:

- lpd - the lpd print server program

- lpr, lpq, lprm, lpc, and lpstat client programs for printing, status queries, job removal, server configuration, and System V lpstat emulation respectively.

- `printcap` print queue database file which is used by all the server and client programs

- `lpd.conf` LPRng configuration options which is used by all the server and client programs

- `lpd.perms` permission information which is used by the lpd server to control user actions.

LPRng uses the configure script generated by the GNU autoconf utility to generate a set of `Makefiles`. These are used by GNU make to compile and install the LPRng software. The following `Makefile` variables and values are set by configure to specify the location of the LPRng software:

Configure Variable | Default Value | Expanded Default Value | Override
--- | --- | --- | ---
`${prefix}` | `/usr/local` | `--prefix=PATH` |
`${exec_prefix}` | `${prefix}` | `/usr/local` | `--execprefix= PATH`
`${bindir}` | `${exec_prefix}/bin` | `/usr/local/bin` | `--bindir= PATH`
`${sbindir}` | `${exec_prefix}/sbin` | `/usr/local/sbin` | `--sbindir= PATH`
`${libexecdir}` | `${exec_prefix} /libexec` | `/usr/local/libexec` | `--libexecdir= PATH`
`${sysconfdir}` | `${prefix}/etc` | `/usr/local/etc` | `--sysconfdir= PATH`
`${mandir}` | `${prefix}/man` | `/usr/local/man` | `--mandir= PATH`

These are used to install the following files:

Configure Variable | Files
--- | ---
`${bindir}` | `lpr, lprm, lpq, lpstat`
`${sbindir}` | `lpc, checkpc, lpd`
`${libexecdir}/filters` | `lpf, pclbanner, psbanner, lpbanner`
`${sysconfdir}` | `lpd.conf, lpd.perms, printcap`
`${mandir}/man[1-9]` | `man pages`

You can set explicit values for the paths by using the override `--name=PATH`. For example:

        ./configure --prefix=/usr --sysconfdir=/etc \
            --mandir=/usr/share/man

Variable | Value | Files
--- | --- | ---
${bindir} | /usr/bin | /usr/bin/{lpr,lprm,lpq,lpstat}
${sbindir} | /usr/sbin | /usr/sbin/{lpc,checkpc,lpd}
${libexecdir}/filters | /usr/libexec/filters | /usr/libexec/filters{lpf, pclbanner, psbanner, lpbanner}
${sysconfdir} | /etc | /etc/{lpd.conf,lpd.perms,printcap}
${mandir}/man[1-9] | /usr/share/man | /usr/share/man/man[1-9]/{man pages}

In addition to these standard configure options the following options provided.

`--disable-setuid`

  Install the executables without setuid ROOT permissions. Non-setuid clients and programs are inherently more secure than SETUID programs, and system administrators would be well advised to install them without SETUID root permissions. Please see Security Considerations for more details about this option.

`--disable-gdbm`

  Do not use the GDBM database library. This library is used to speed up storage and retrieval of job information. This is especially useful when there are a large number of jobs in the system which need to be accessed.

`--enable-priv_ports.`

  Require connections to the lpd server to come from a privileged port (range 1-1023). By default LPRng will allow connections from any port. Please see Security Considerations for more details about this option.

`--disable-force_localhost`

  The default LPRng configuration assumes that all printing will be done via a lpd print spooler running on the local host system. However, many larger sites prefer that all users do their printing via a few central servers, and do not run lpd servers on user systems. The `--disable-force_localhost` configuration sets the default value of the `force_localhost` value to `false`, by default allowing the LPRng clients to connect directly to lpd servers on remote hosts.

`--disable-require_configfiles`

  By default, the lpr, lpq, lprm, and lpc clients require the `lpd.conf` and `printcap` files to be present on the localhost. The `--disable-require_configfiles` literal removes this requirement.

`--enable-kerberos`

  Include support for Kerberos 5 authenticated transfers.

`--enable-mit_kerberos4`

  Include support for MIT Kerberos 4 authenticated transfers.

`--disable-kerberos_checks`

  Disable checks for kerberos support libraries, etc.

`--with-lpddir=DIR`

  lpd executable directory (default ${sbindir}). For historical configuration compatibility.

`--with-filterdir=DIR`

  Filter directory (default ${libexecdir}/filters). For historical configuration compatibility.

`--with-lpd_conf_path=PATH`

  Path of `lpd.conf` file. For historical configuration compatibility.

`--with-lpd_perms_path=PATH`

  Path of `lpd.perms` file. For historical configuration compatibility.

`--with-printcap_path=PATH`

  Path of `printcap` file. For historical configuration compatibility.

`--with-ld_library_path=PATHLIST`

  Set the LD_LIBRARY_PATH environment variable of filters to this value.

`--with-filter_path=PATHLIST`

  Set the PATH environment variable of filters to this value.

`--with-userid=NAME`

  Run LPRng as this user, default daemon

`--with-groupid=NAME`

  Run LPRng as this group, default daemon

`--with-lockfile=PATH`

  The lockfile path. This will be expanded to PATH.server or PATH.port allowing multiple LPRng servers to run on a single host.

`--with-filterdir=PATH`

  Location of the filters installed by LPRng.

`--with-chooser_routine=NAME`

  name of chooser routine provided by user

`--with-order_routine=NAME`

  name of order routine provided by user

`--with-user_objs=NAME`

  object file with routines provided by user

`--with-user_include=NAME`

  include file with templates for routines provided by user

`--disable-strip`

  Do not strip the executables before installing. For debugging and diagnostic purposes.

It is recommended that you use one of the following configurations:

1. If you already have a print spooling system installed and want to install LPRng for testing purposes or as an alternative to the existing system and keep your existing print spooling system, use:

           ./configure

           use defaults for file locations and permissions:
             /usr/local/{bin,sbin,libexec/filters,man}
           requires lpd to run on the local host
           executables installed setuid ROOT

2. If you have manual pages in `/usr/share/man`, your existing print spooling system has executables in `/usr/bin` and `/usr/sbin`, and you want to replace your existing print spooling system, use:

           ./configure --prefix=/usr --sysconfdir=/etc \
             --mandir=/usr/share/man

           executables and files in
              /usr/{bin,sbin,libexec/filters}
              /usr/share/man/man[0-9]
           requires lpd to run on the local host
           everything installed setuid ROOT

3. If you have manual pages in `/usr/share/man` and allow jobs (by default) to be sent directly to the server host (lightweight operation), use:

           ./configure --prefix=/usr --sysconfdir=/etc \
              --mandir=/usr/share/man --disable-force_localhost

           executables and files in
              /usr/{bin,sbin,libexec/filters}
              /usr/share/man/man[0-9]
           does not require lpd to run on the local host
           everything installed setuid ROOT

Prev | Home | Next
Daemon User and Daemon Group | Up | System and User Printcap, lpd.conf, and lpd.perms files