Printing

This chapter contains spooling printer management systems and ghostscript applications to render PostScript for display on terminals or paper.

CUPS-1.2.7

Introduction to CUPS

The Common Unix Printing System (CUPS) is a print spooler and associated utilities. It is based on the "Internet Printing Protocol" and provides printing services to most PostScript and raster printers.

Package Information

CUPS Dependencies

Recommended

Optional

pkg-config-0.20, D-BUS-0.62, OpenLDAP-2.3.27, OpenSSL-0.9.8d or GnuTLS (which needs libgpg-error, libgcrypt and opencdk, in that order), Linux-PAM-0.99.4.0, PHP-5.1.4, Python-2.4.4, JDK-1.5.0_10, OpenSLP, libpaper, libacl (requires libattr), HTMLDOC, and Valgrind (optionally used if running the test suites)

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/cups

Installation of CUPS

Create an lp user, as CUPS will create some files owned by this user. (The lp user is the default used by CUPS, but may be changed to a different user by passing a parameter to the configure script.) Use the following command as the root user:

useradd -c "Print Service User" -d /dev/null -g lp -s /bin/false -u 9 lp

Install CUPS by running the following commands:

./configure &&
make

To test the results, issue: make check. This will run a basic test suite without any load testing. If you wish to run the tests specifying non-default parameters, issue: make test. Note that the “torture load testing” test uses more resources than those displayed in the prompt.

Now, as the root user:

make install

The man files are installed in compressed (.gz) format. If desired, use the following commands to uncompress them:

gunzip -v /usr/share/man/man{\
1/{cancel,cups{-config,test{dsc,ppd}},\
lp{,options,passwd,q,rm,r,stat}}.1,\
5/{{classes,client,cups-snmp,cupsd,printers,subscriptions,mailto}.conf,\
mime.{convs,types}}.5,\
7/{backend,filter}.7,\
8/{accept,cups{d,addsmb,enable,-{deviced,driverd,lpd,polld,}},\
lp{admin,info,move,c}}.8}.gz &&

rm -v /usr/share/man/man8/{reject,cupsdisable}.8.gz &&

ln -v -s accept.8 /usr/share/man/man8/reject.8 &&
ln -v -s cupsenable.8 /usr/share/man/man8/cupsdisable.8

Command Explanations

The basic default behavior of the installation is appropriate for LFS systems. CUPS files are placed in /usr/bin, /usr/sbin, /var and /etc/cups.

Configuring CUPS

Configuration of CUPS is dependent on the type of printer and can be complex. Generally, PostScript printers are easier. For detailed instructions on configuration and use of CUPS, see http://www.cups.org/documentation.php. The Software Administrators Manual and Software Users Manual are particularly useful.

For non-PostScript printers to print with CUPS, you need to install ESP Ghostscript-8.15.2 to convert PostScript to raster images and a driver (e.g., from Gimp-Print-4.2.7) to convert the resulting raster images to a form that the printer understands. Foomatic drivers use Ghostscript to convert PostScript to a printable form directly, but this is considered to be a hack by CUPS developers.

Boot Script

During the installation, CUPS added startup files in /etc/rc.d. These scripts will work in most cases, but will fail if you provide printers to Samba clients. Additionally, they are not consistent with standard LFS style scripts. Replace the installed scripts with the scripts and symlinks included in the blfs-bootscripts-20060910 package:

make install-cups

Contents

Installed Programs: accept, cancel, cups-config, cupsaddsmb, cupsd, cupstestppd, disable, enable, lp, lpadmin, lpc, lpinfo, lpmove, lpoptions, lppasswd, lpq, lpr, lprm, lpstat, and reject
Installed Libraries: libcups.{so,a}, libcupsimage.{so,a}, and various filters and backend drivers
Installed Directories: /etc/cups, /usr/include/cups, /usr/lib/cups, /usr/share/doc/cups, /usr/share/cups, /var/log/cups, and /var/spool/cups

Short Descriptions

accept

instructs the printing system to accept print jobs to the specified destinations.

cancel

cancels existing print jobs from the print queues.

cups-config

is a CUPS program configuration utility.

cupsaddsmb

exports printers to the Samba software for use with Windows clients.

cupsd

is the scheduler for the Common Unix Printing System.

cupstestppd

tests the conformance of PPD files.

disable

stops the named printers or classes.

enable

starts the named printers or classes.

lp

submits files for printing or alters a pending job.

lpadmin

configures printer and class queues provided by CUPS.

lpc

provides limited control over printer and class queues provided by CUPS.

lpinfo

lists the available devices or drivers known to the CUPS server.

lpmove

moves the specified job to a new destination.

lpoptions

displays or sets printer options and defaults.

lppasswd

adds, changes or deletes passwords in the CUPS digest password file passwd.md5.

lpq

shows the current print queue status on the named printer.

lpr

submits files for printing.

lprm

cancels print jobs that have been queued for printing.

lpstat

displays status information about the current classes, jobs, and printers.

reject

instructs the printing system to reject print jobs to the specified destinations.

Last updated on 2007-01-28 11:43:31 -0600