CUPS is a more recent printing system that was initially designed to support the Internet Printing Protocol (IPP) but has evolved into a drop-in replacement for both the BSD and System V utilities, including client replacements for RFC 1179 (lpd protocol) support.

Although it retains backward compatibility with older printing systems, the internal details of CUPS are significantly different. The server component cupsd handles queuing, and includes a web server for configuration and management. Nearly everything can be configured through the web interface or the included lpadmin command. The various configuration files in the /etc/cups directory rarely need to be edited by hand.

The CUPS web interface, shown in Figure 18-1, is available on the machine at http://localhost:631.

CUPS management web interface
Figure 18-1. CUPS management web interface

In order to implement or troubleshoot a printing system, it’s very important to understand the data flow and the steps taken on the server and client side. In the case of CUPS, these are:

  1. A print job is generated by an application locally on the client side.

  2. The print job is sent to the print server specified by the protocol selected for that queue (e.g., IPP or CIFS).

  3. On the CUPS server, the spooler process cupsd fetches the data stream and saves it in the print spool directory. The default directory is /var/spool/cups.

  4. If an input filter is specified in the configuration, ...

Get LPI Linux Certification in a Nutshell, 3rd Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.