Linux System Administration: A User's Guide Part 3 of 3

Linux System Administration: A User's Guide Part 3 of 3

This is an excerpt from Chapter 13 of Linux System Administration: A User's Guide written by Marcel Gagne, published by Addison-Wesley. ISBN 0201719347. No part of this excerpt may be reproduced, in any form or by any means without the prior written permission of the publisher. (c) 2002 Addison-Wesley

Alternative Print Systems
You'll get very little argument from the Linux community regarding the need for better and easier printing systems. While the lp /lpd printing system is good, works well, and has worked well for decades, a little simplification wouldn't hurt. Luckily, you can find some tools in the Linux world that are changing the face of printing from an administrative nightmare to something more fun and less frightening.

Every distribution differentiates itself with its own interface for system administration tasks such as setting up users and printers. Red Hat has print tool and SuSE has YAST. While I could explore each distribution's options for handling this, I'd like to spend some time looking at alternatives that are not release-specific. In the next few sections, I'll introduce you to two such systems.

According to the author Jacob A. Langford, PDQ stands for "print, don't queue" and a variety of other acronyms. His page is at the following address:

PDQ is a nice, friendly little package that works on Linux and a variety of other UNIX systems. I'm not sure I agree completely with Jacob's reasoning on printing, accounting, and queuing, but that doesn't detract from PDQ's value. While it seems quite capable of dealing with large deployments of printers, what I particularly like about PDQ is that it presents the kind of friendly face that users of that other OSs find so appealing, complete with a slick X window-like interface and wizards to help you set up your printers quickly and easily. You can even use Grant Taylor's compatibility list (at to find the latest PDQ drivers and filters.

Downloading the PDQ source and installing it is easy. When you get your copy, make sure you substitute the appropriate release information. All you have to do is untar and unzip, and then do a make followed by a make install, as follows:

tar -xzvf pdq-2.2.1.tgz
cd pdq-2.1.2
make install

Now set up a base printrc configuration file, like this:

mv /etc/pdq/printrc.example /etc/pdq/printrc

To start PDQ and configure your first printer, simply type this command:

xpdq &

When the interface comes up, click Printer, choose Add, and follow the steps in the printer wizard. When you move your mouse over a field, PDQ provides context-sensitive, "bubble" help to guide you.

When you get to the driver-selection screen, you may find the list somewhat limited - only about a dozen printers are listed - although you may be able to use a generic definition. For my HP LaserJet 5L, I went back to Grant Taylor's printer compatibility list and found my printer. To install this new driver I typed the following:

cd /etc/pdq/drivers/hp

In the driver's directory are subdirectories for the printer classes (or brands, if you prefer). After changing to the hp directory, I used vi (you can use Emacs, Pico, or whatever editor you prefer) and simply cut and pasted the information on the screen. Then I restarted xpdq, and my printer was in the list (see Figure 2).

To print a job using PDQ, send the job through the command line (did I mention there are command-line utilities that let you do what the X interface does?). The format is simple. For my test I sent a PostScript file. I wanted to see PDQ's drivers and filters in action.

pdq -P hp5lj /tmp/

The -P flag calls the printer name as I defined it in the wizard, while the file called /tmp/ is my very important print file. The X interface (xpdq) then reports the status of the job and allows me to reprint it, get a status on it (if it's deep in the list of jobs), or get information on the type of job.

Another alternative to good old-fashioned lpd printing is CUPS. CUPS, or the Common UNIX Printing System, is designed to be a platform-independent printing system that works across many different UNIXes (or UNICes, if you prefer). The company that produces CUPS (Easy Software Products) distributes it under the GPL, but you should be aware that the number of print drivers is limited. You'll find the latest software at this address:

For large printer support you might want to consider their ESP Print Pro, a commercial offering that includes CUPS, lots and lots of printer drivers, and a nice GUI. To explore the commercial side of CUPS, visit

CUPS uses the Internet Printing Protocol (IPP), a next-generation printing system aimed at replacing LPD with a "universal" printing environment (although it still supports LPD), where any user anywhere can print to any printer anywhere. It also aims to provide better authentication and security. The proposed standard would even allow for encrypted print jobs. Those who are really curious as to where this is going can visit the Printer Working Group's Web site at

As I mentioned, CUPS has limited printer support in its free package; however, some popular printers are supported. If you want to go this route but prefer to stick to the freeware version (and you may use the provided drivers), you can still get a nice GUI for your desktop. Actually, you can get several nice GUIs, which gives you an idea of the growing popularity of CUPS.

Visit the CUPS-Related Stuff Home Page ( and you'll find something to enlighten your CUPS experience. In particular, check out KUPS and QtCups.

Miscellaneous Tips and Tricks
If you're running Red Hat 6.1, you may have found yourself at a loss, trying to figure out why your system does not want to recognize your printer port.

There are two potential problems at work here. The first has to do with a line missing from the /etc/conf.modules file. Try adding this line if you don't see it:

alias parport_lowlevel parport_pc

Another problem has to do with the version of modutils that was distributed with the system. Visit the Red Hat site and pick up the latest modutils RPM package.


  • CUPS:
  • Ghostscript:
  • Linux Printing HOWTO:
  • Linux Printing Usage HOWTO:
  • PDQ:
  • Printer Working Group:
  • More Stories By Maureen O'Gara

    Maureen O'Gara the most read technology reporter for the past 20 years, is the Cloud Computing and Virtualization News Desk editor of SYS-CON Media. She is the publisher of famous "Billygrams" and the editor-in-chief of "Client/Server News" for more than a decade. One of the most respected technology reporters in the business, Maureen can be reached by email at maureen(at) or paperboy(at), and by phone at 516 759-7025. Twitter: @MaureenOGara

    Comments (0)

    Share your thoughts on this story.

    Add your comment
    You must be signed in to add a comment. Sign-in | Register

    In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.