The LPRng software is a true set of client/server applications.
The LPRng clients,
lpr, lprm, lpq,
and lpc
connect to a lpd
server using a
TCP/IP connection.
This means that you must have TCP/IP networking enabled on your workstation
to use LPRng.
However,
you do not need to have an external network connection to the Internet.
For most single system users,
the lpd
server is running on the same workstation as the client program,
and the clients will simply talk to the localhost
.
Options used:
PRINTER
Environment variable force_localhost
force clients to send requests to localhost default_printer_when_unknown
used by LPD when printer name not in printcap When an LPRng client such as
lpr
,
lpq
,
lprm
,
or
lprc
needs to communicate with a print server,
the only information they normally need is:
lpd
print server.
This is sometimes referred to as the printer or print queue name.LPRng has several ways to specify the printer queue and server information.
The -P printer@host
option specifies both the print queue and
server.
lpr -Plaser@10.0.0.1
lpq -Plp@myserver
When used as a command line option,
the printcap database will not be consulted for other options or information.
This allows LPRng clients to function without a printcap database,
and without a lpd
print server running on their local host.
However,
options set in the /etc/lpd.conf/
and the compile time defaults
will still be used.
This form will cause the LPRng clients to look in the
/etc/printcap
for a printcap entry with the name or alias printer
and use the information in that printcap entry.
We will discuss the format of the printcap entry in a moment.
Example:
lpr -Plp
If no command line option is specified,
the LPRng clients will check for a PRINTER
environment variable value
and will use it as though specified as a
-P$PRINTER
command line option.
If the $PRINTER value has the form
printer@host
the print queue will be printer
on server host
.
and not consult the printcap database
If the $PRINTER value has the form printer
then the printcap will be searched
for a printer
printcap entry.
For example:
export PRINTER=laser@10.0.0.1; lpr
export PRINTER=pr; lpr
If you do not specify a printer on the command line or in the PRINTER
environment variable,
then LPRng will search the printcap and use the first valid printcap entry
as the printer.
If you do not have a /etc/printcap
file,
then LPRng will use the
default_printer
and
default_remote_host
fallback
values set in the /etc/lpd.conf
file or by the compile time defaults.
Using the fallback values is usually not a desirable event and may indicate
that you have a misconfigured host, so the fallback values are usually set
by administrators to missingprinter@localhost
to provoke an annonying message for users.
For completeness,
there is even a default_printer_when_unknown
configuration
entry for use by LPD when it is given a printer name not in its printcap
database.
By default,
it will look up this name in the database and treat the job as though it was
sent to this printer.
Workstations for personal use or in extremely simple configurations
will always run an lpd
server on the localhost.
This is the most common situation for the majority of new
users,
and the
default LPRng installation sets the default value of the
force_localhost
configuration parameter to TRUE or to 1.
The
lpr
lpq
lprm
and
lpc
will connect to localhost
(usually IP address 127.0.0.1)
unless explicitly overridden by the command line -Pprinter@host
argument.
Larger sites or organizations which want to use a central print server
to handle multiple printers or printer sharing
may want the clients to connect directly to the server.
In this case the system administrator should set
force_localhost@
in the
/etc/lpd.conf
or modify the compile time default.
See
Simple Client Printcap Entry
for ways to change this.