08 - CUPS

For more information, see the Wikipedia Article

012d4ebd8864e82badef389fdc58046b.png

CUPS (Common Unix Printing System) was created in 1997 by Michael Sweet, initially designed as an open-source project to standardize printing across Unix and Unix-like operating systems. The original design of CUPS used the Line Printer Daemon protocol (LPD), but due to limitations in LPD and vendor incompatibilities, the Internet Printing Protocol (IPP) was chosen instead.

In March 2002, Apple Inc. adopted CUPS as the printing system for Mac OS X 10.2. In February 2007, Apple Inc. hired chief developer Michael Sweet and purchased the CUPS source code. Michael Sweet announced that he is leaving Apple in December of 2019, and in 2020, the OpenPrinting Organization forked the project, with Michael Sweet continuing the work. CUPS is a free software under the Apache license.

CUPS is a full-featured printing solution which includes:

CUPS Configuration and Paths

CUPS is included in Ubuntu software repositories (sudo apt install cups). Ubuntu uses the lpadmin and lp groups as the default system group for bulk managing user access to printer and administrative functions. The cups-pdf package installs a virtual PDF printer.

The default configuration and files:

CUPS Printing Management and Utilities

Managing the service is done via systemd as with many other daemons using service cups [ start | stop | restart ]. The web-based user interface can be used to administrate printers on a system locally or over a network. If configuring and using the web UI, be sure to take security and access control into consideration.
The default logs are located under /var/logs and may be under access_log and error_log. You can configure the logs by modifying directives under the /etc/cups/cups-files.conf:

There are CLI utilities for administrating printers locally:

Additionally, users can submit and manage print jobs using the following CLI utilities:

Refer to the manpages for each of these utilities and commands for more details.