When to Pick CUPS

CUPS was developed, in part, to address the shortcomings of BSD LPD and LPRng in terms of print queue/application communication and network print client/server communication. CUPS includes mechanisms to facilitate both tasks and has the potential to greatly simplify application and print client configuration. This potential is not yet fully realized, though. CUPS is still fairly new, and many applications continue to use older protocols and ignore the new CUPS features. Nonetheless, CUPS' client/server communication features can make it easier to configure many print clients if you use CUPS on both the server and the clients. This configuration is described in more detail in the upcoming section, "Simplifying Network Printing with


Compared to other Linux print queues, CUPS configuration is quite complex; however, CUPS includes a built-in web-based configuration tool to help simplify matters. You can access this tool by browsing to http://localhost:631 from the computer on which CUPS is installed, as shown in Figure 13.1. (You can also use your computer's hostname instead of localhost.) Click the Manage Printers link to create or modify printer definitions. The web-based configuration tool provides links that will guide you through the process, including specifying your printer model. CUPS can then provide information about your printer to applications that ask for this information, simplifying application setup—if the applications avail themselves of this information, which many don't yet do.

Figure 13.1: CUPS provides a web-based tool for managing printers.

Most of CUPS' features, including its web-based configuration tool, can be accessed from the network. The official default configuration is to deny administrative access to anything but the local computer but to accept print jobs from any host. Some Linux distributions, though, restrict matters further, so you may need to loosen these restrictions to enable network printing. This issue is described in the upcoming sections, "CUPS Access Control" and "Simplifying Network Printing with CUPS."

One problem with CUPS is that its new features rely upon a new network printing protocol, the Internet Printing Protocol (IPP). By itself CUPS can't accept print jobs from computers that run BSD LPD or LPRng, although CUPS does include support for submitting print jobs to such systems. If you want to run a CUPS print server that can accept jobs from systems that run older printing systems, you must add a tool called cups-lpd, which adds support for the LPD protocol used by both BSD LPD and LPRng. This program ships with CUPS and is launched through a super server (inetd or xinetd). The cups-lpd man page includes sample configurations for both of these super servers, and most distributions that use CUPS ship with these configurations set up but in a disabled state. When run, cups-lpd accepts LPD jobs and converts them to IPP jobs for CUPS.

Whether or not you run cups-lpd, CUPS provides printing tools for local printer access that use the same names as the tools provided with BSD LPD or LPRng, such as Ipr, Iprm, and Ipq. Some CUPS configurations also automatically generate an /etc/printcap file for the benefit of programs that check this file's contents; however, the CUPS printcap file is bare bones and isn't used to configure CUPS. Thus, editing the file is pointless. If your system doesn't generate an /etc/printcap file and some of your programs can't find your printers, you may want to try generating one. Listing each print queue name on a line of its own, followed immediately by a colon (:), should do the job.

Team LiB

0 0

Post a comment