mirror of https://gitee.com/openkylin/cups.git
199 lines
8.0 KiB
Plaintext
199 lines
8.0 KiB
Plaintext
Conventions used in this document
|
|
================================
|
|
|
|
In this README we will use 'cups' to refer to versions 1.6.x (and newer)
|
|
of the Debian package. When necessary, other versions will be specified
|
|
explicitly. This is because there is a very important difference in the
|
|
behaviour of cups and cups 1.5.x (or older versions) regarding advertising
|
|
print queues. In almost every other regard, the behaviour of cups is
|
|
identical to its preceding versions.
|
|
|
|
We will we also use 'standard' to mean a Debian cups installation which
|
|
pulls in all recommended packages. This will set you up with a complete
|
|
filtering system and an extensive selection of printer drivers and PPD
|
|
files.
|
|
|
|
|
|
Print queues, drivers and printers
|
|
==================================
|
|
|
|
Below is an outline view of the progress of a job through the printing
|
|
system:
|
|
|
|
Submitted cups scheduler Filtering system Transport mechanism
|
|
print -> and -> plus -> USB, network, -> Printer
|
|
job print queue drivers etc
|
|
|
|
For this to take place successfully the scheduler must be told:
|
|
|
|
* Which driver the job is to use (a PPD file)
|
|
* The transport mechanism (the device-uri)
|
|
|
|
Given these two things, it will then have a print queue set up to submit
|
|
the job to. Reading lpinfo(8) and lpadmin(8) will give you more on the
|
|
fundamental way of establishing a queue.
|
|
|
|
Debian supports printers via printer driver executables and PPD files in
|
|
the cups, ghostscript. foomatic and printer-driver-* packages. It is more
|
|
than likely you will find something to suit you from this collection of
|
|
free software. If needs be, a manufacturer supplied PPD can be provided
|
|
using lpadmin or the web interface.
|
|
|
|
Prior to setting up a queue it is a good idea to visit
|
|
|
|
http://www.openprinting.org
|
|
|
|
to get some idea from its extensive database as to which drivers are
|
|
suitable for your printer.
|
|
|
|
|
|
Setting up a local print queue
|
|
==============================
|
|
|
|
The command line tools, lpadmin and lpinfo, can be used for this. Also,
|
|
depending on what is installed on your system, a queue may be set up in an
|
|
automated way. However, cups provides a web interface to accomplish the
|
|
same task. It is accessed from a browser with
|
|
|
|
http://localhost:631
|
|
|
|
There is copious documentation under 'Online Help' and 'Printers' will
|
|
display a list of local and remote print queues.
|
|
|
|
'Administration' is where you need to be to set up a local print queue.
|
|
At some point you will be required to authenticate. A User Name of 'root'
|
|
and root's password is always acceptable. Any other user must be a member
|
|
of the lpadmin group.
|
|
|
|
By default cups is configured only to allow connections to local queues
|
|
from localhost, effectively disabling printing to them from other
|
|
machines on the network. The web interface or cupsd.conf and printers.conf
|
|
in /etc/cups can be used to alter this behaviour.
|
|
|
|
|
|
Printing to advertised, shared print queues
|
|
===========================================
|
|
|
|
Suppose you are on a network which has a server using the
|
|
Bonjour/DNS-SD/mDNS protocol to advertise its local print queues as being
|
|
shared. Your machine will have a list of the advertised queues if you have
|
|
avahi-daemon installed and running. But your cups needs a little help to
|
|
access this list. It can get assistance from cups-browsed.
|
|
|
|
In its default setup cups-browsed will see exactly what avahi-daemon sees.
|
|
From this information it creates local queues which, just like the local
|
|
queues you may have created yourself, are capable of being used by your
|
|
applications. The difference is that the discovered queues are raw queues:
|
|
any job sent to them is processed on the remote machine, not on your
|
|
machine.
|
|
|
|
A standard cups installation includes avahi-daemon and cups-browsed. This
|
|
means your machine will pick up the Bonjour broadcasts of remote servers
|
|
and, without any further configuration, you will have its queues listed in
|
|
/etc/cups/printers.conf and displayed with 'lpstat -a'.
|
|
|
|
Now for the bad news! The remote server may not be broadcasting with the
|
|
Bonjour protocol but using the CUPS/IPP browsing protocol. cups knows
|
|
nothing whatsoever about this protocol so forget about it being able to
|
|
use or process information from the remote print queues. But, good news;
|
|
cups-browsed can come to the rescue. Please read its documentation and
|
|
check the setting for 'BrowseRemoteProtocols' in its configuration file,
|
|
/etc/cups/cups-browsed.conf. If it is 'CUPS dnssd' you have nothing to do.
|
|
|
|
|
|
Advertising your local queues
|
|
=============================
|
|
|
|
Your cups install (standard or not) automatically uses only the Bonjour
|
|
protocol to advertise any print queues you choose to share. Sharing
|
|
print queues may be done either by
|
|
|
|
* setting 'Browsing' to 'On' or 'Off' in /etc/cups/cusd.conf
|
|
or
|
|
* Using the Administration section of the web interface
|
|
|
|
Having done this, finer control over individual print queues can be
|
|
achieved in /etc/cups/printers.conf with 'Shared' as 'On' or 'Off' for
|
|
chosen printers. Alternatively, a print queue can be modified from the
|
|
Printers section of the web interface.
|
|
|
|
Ok, you have chosen to share; everything is now alright? Not quite! A
|
|
1.6.x machine listening to your Bonjour broadcasts will be capable of
|
|
processing them with the aid of cups-browsed but a 1.5.x (or older)
|
|
machine will not be. This is because it usually does not have
|
|
cups-browsed available to install so can only process CUPS/IPP protocol
|
|
broadcasts. But, once again, cups-browsed on your machine can help your
|
|
cups daemon out. Please read its documentation.
|
|
|
|
Socket-activation under systemd
|
|
========================================
|
|
|
|
Since 1.7.1-7, when systemd is the active init system, CUPS can be
|
|
configured to be socket-activated; it will then only be launched on accesses to
|
|
its sockets. The socket definition in /lib/systemd/system/cups.socket gets
|
|
configured through files in /etc/systemd/system/cups.socket.d/; see
|
|
systemd.unit(5) and the examples files in /usr/share/doc/cups-daemon/examples .
|
|
|
|
CUPS opens its listening ports based on 'Port' and 'Listen' stanzas in
|
|
/etc/cups/cupsd.conf. For systemd's socket activation to working, cups.socket
|
|
needs to be configured to listen to the correct IPs and aports by dropping
|
|
configuration files in the /etc/systemd/system/cups.socket.d/ directory.
|
|
|
|
When launched by socket-activation, CUPS can additionally exit itself after
|
|
being idle for some time (60 seconds by default) by setting 'IdleExitTimeout'
|
|
in /etc/cups/cupsd.conf'.
|
|
|
|
Printing without using a local cups daemon
|
|
==========================================
|
|
|
|
For this to be possible you need to have permission to access a remote
|
|
server and to have at least cups-client installed. The cups and
|
|
cups-daemon packages are not required. The documentation for cups and
|
|
client.conf(5) should be sufficient to guide you further.
|
|
|
|
|
|
LPD support.
|
|
============
|
|
|
|
The BSD commands are separated into their own package, cups-bsd, whereas
|
|
the cups-lpd daemon is in the cups package. The hope is to make it
|
|
possible to have cups and some other BSD-style printing system (such as
|
|
lpr) side-by-side for testing purposes. However, it's known that cups
|
|
conflicts with LPRng, since LPRng provides some System V printing commands
|
|
as well; this problem will (hopefully) be dealt with in time.
|
|
|
|
The cups-lpd daemon is disabled by default. To enable it install cups-bsd
|
|
and update-inetd; then run:
|
|
|
|
dpkg-reconfigure cups-bsd
|
|
|
|
and follow the prompts. You will need a compatible inetd daemon installed
|
|
(not xinetd).
|
|
|
|
When using the LPD support provided by cups-bsd you need to ensure
|
|
debconf knows that you want LPD support enabled, otherwise LPD support
|
|
will be disabled when you upgrade cups-bsd. To check, install
|
|
debconf-utils and execute:
|
|
|
|
debconf-get-selections | grep setuplpd
|
|
|
|
The command should return:
|
|
|
|
cups-bsd cups-bsd/setuplpd boolean true
|
|
|
|
|
|
Reporting bugs
|
|
==============
|
|
|
|
Please see /usr/share/doc/cups/HOWTO_BUGREPORT.txt.
|
|
|
|
|
|
|
|
|
|
This document is based on the one originally written by
|
|
|
|
Jeff Licquia <licquia@debian.org> and Kenshi Muto <kmuto@debian.org>
|
|
|
|
and has been updated by Brian Potkin to reflect changes in the Debian
|
|
printing system during the intervening period.
|