“There is currently no universal standard for printing. Several protocols are in use, but each has limited applicability and none can be considered the prevalent one. This means that printer vendors have to implement and support a number of different protocols and protocol variants. There is a need to define a protocol which can cover the most common situations for printing on the Internet.”
“The Internet Printing Protocol is a client-server type protocol which should allow the server side to be either a separate print server or a printer with embedded networking capabilities.”
As IPP is a standard, CUPS is able to share and access printers from and to most modern operating systems and devices. Its auto-detection of IPP servers features may help you a lot while setting up new workstations.
This article was first written in October 2003 for the BeezNest technical website (http://glasnost.beeznest.org/articles/78)
This article was first written in August 2005 for the BeezNest technical website (http://glasnost.beeznest.org/articles/286).
In a networked infrastructure, with many workstations needing to print (or generate PDF or PS files, or send faxes), CUPS may help a lot, especially with its automatic network-browsing features.
Let’s see how to set that up.
First, you probably want to setup a server to share printers. Those printers may be networked themselves (ie embed a print server or be connected to an external one) or local (parallel, USB or serial) to the server. The print server types that CUPS may use to access its printers are:
- AppSocket/HP JetDirect
You only need to install CUPS server and printers’ definitions in the form of PPD files (which may in turn require some tools to work correctly). Configure the CUPS server to allow browsing in both directions (be careful how you do it though, as it may represent a security risk).
The CUPS clients, if they don’t need to share printers themselves, do not need to host a full-blown CUPS server, but only use libraries and/or client utilities (like lpr and/or lp). To tell the CUPS library to use a remote CUPS server, it suffice to fulfill the CUPS_SERVER environment variable of the machine or the user’s profile.
Light print server
If you only need to give access to a local printer on a workstation, maybe a better idea would be to avoid running a full CUPS server on it, and run a light print server simulating an HP JetDirect server. You would avoid at the same time having to install all it’s dependencies, which are numerous and may eat a lot of disk space. Hopefully, p910nd exists just for that. It takes almost no memory and is usable from inetd (to load it into memory only when needed) or as daemon. You would lose the auto-detection, but it is not a huge work to create once the printer on the central CUPS server.
This article was first written in June 2004 for the BeezNest technical website (http://glasnost.beeznest.org/articles/135).
To change the default printer when using GNOME, it is pretty easy, provided that you use CUPS and gnome-cups-manager.
Go into the “Applications” menu, then “Desktop Preferences”, and “System Tools” and click on “Printing”.
There, you have a list of all preconfigured printers on the system. Right-click on the one you want by default and click on the “Make Default” menu entry. If this one is greyed and you cannot click on it, it means it is already the default.
Now, any application should print on this printer by default, unless otherwise told.
GNU/Linux is particularly adapted as file server for Microsoft Windows, MacOS (any version) and UNIX workstations. It is adapted to serving printers to them as well and, as every UNIX, is well-suited as application server (mail, web, DHCP, …).
Users and groups are stored on the server for centralized and common access from all the client types.
For the management of all that, we use Webmin, a web interface that allows a lot of things, even remote and shared management between several administrators.
Samba is a free CiFS (also known as SMB, a file and print server and client for UNIX) implementation, known as performing faster than the original Microsoft implementation. It can integrate into an existing Windows-based network, or completely replace it for every service the Windows version can provide. By integration, I mean be client or server or both at the same time.
Netatalk is a free Appletalk implementation for UNIX. It allows Mac users to access the files created by the users of the other systems.
A FTP server is sometimes the best way to transfer files betweens computers, for example from the outside of the local network. It must be secured, however, to only allow access to people who need it.
CUPS is a free implementation of the widely supported (Microsoft, HP, …) IPP (Internet Printing Protocol) which removes most of the burden associated to networked printers. It allows, with various interfaces (web, GTK+, …), to install and configure all kinds of printers. It also allows printers autodiscovery on your network.
To manage users and groups accross the network, various solutions exist, depending on the existing infrastructure. If you do not already run an NT Domain (or Active Directory) or do not want to use it, we use NIS or LDAP to store, retrieve and manage users, passwords and groups. Otherwise, Samba is also able to integrate your GNU/Linux to the existing Domain or replace it completely.
This article was first written in October 2003 for the BeezNest technical website (http://glasnost.beeznest.org/articles/74)