This explains how to set up a headless Ubuntu CUPS print-server which allows printing, and can be administered, over a network (without having to install the gui). This is for Ubuntu 6.06 or 6.10. I found the following a useful reference: /usr/share/doc/cupsys/README.Debian.gz (only available after installing cupsys) Set Up The Server Install Ubuntu Server Install from the "Alternative" CD and select Server Installation Perform an update apt-get update apt-get upgrade Install cupsys 1.2 and openssh-server These are available from the CD, so no need to add any repositories. Eg; apt-get install cupsys openssh-server You can now ssh in and could do the rest remotely. Allow remote administration of CUPS By default the cups server only allows local access and administration. Edit the cups config file to allow us to browse the print-sever remotely. In Ubuntu 6.10 with cupsys 1.2.4 edit: /etc/cups/cupsd.conf In Ubuntu 6.06 with cupsys 1.2.2 edit: /etc/cups/cups.d/browse.conf (This file is then included in cupsd.conf) Change: BrowseAllow @LOCAL to: BrowseAllow all Similarly, in the blocks: <Location /> , <Location /admin> and <Location /admin/conf> Change from: Allow localhost to: Allow all Set it to listen for connections from other machines In the config file: change: Listen localhost:631 to: Listen 631 Set CUPS so it doesn't try to use SSL (the default setting) In the config file: /etc/cups/cupsd.conf Add the line: DefaultEncryption Never This should avoid the error: 426 - Upgrade Required when using the CUPS web interface. Allow CUPS to read the password file To do admin tasks remotely using the web interface, it will ask you for a password. In order to check this password CUPS needs to be able to read the password shadow file. To do this 'cupsys' needs to be a member of the group 'shadow'. adduser cupsys shadow Check the print-server's name is correctly known on the network On our network we have a server with a list of host names, which needed updating. On our system this meant using the IPCop web interface and going to: Services > Edit Hosts, and checking that the name corresponding to the print-server's IP address was correct. You should now be able administer CUPS through the web interface from any machine on the network(!). Use the print-server's name or IP address and port 631. Eg: http://print-server-name.networkname:631 or: 192.168.0.20:631 You can then view jobs, add and manage printers etc. Install some good drivers Gutenprint (formerly known as gimp-print) includes a lot of recomended drivers, including the ones that we required for our Epson printers. apt-get install cupsys-driver-gutenprint Now, when you go through the Add Printer process there will be far more drivers available, hopefully including the recomended ones which actually work. Add the Printers Connect the printers to the print-server and use the web interface to add them. On The Client Workstations Allow network printing Goto: System > Administration > Printing then goto: Global Settings > Detect LAN Printers, and make sure it is ticked. Note: Doing the above changes a line in the config file to: Browsing On In Ubuntu 6.10 with cupsys 1.2.4 this line appears directly in /etc/cups/cupsd.conf In Ubuntu 6.06 with cupsys 1.2.2 this line is in the file /etc/cups/cups.d/browse.conf, which is then included in cupsd.conf. Specify the CUPS server To make the workstation pick up the printers published by our print server we have to tell it the CUPS server. If it does not already exist, make a file: /etc/cups/client.conf and add the line: ServerName 192.168.0.20 substituting your printserver's IP address or name. Notes: We shouldn't really have to do this. If the printers are added using the Ubuntu GUI Printing Admin window they simply appear on all the other machines, without us specifying a print server. However, we wanted to run a headless print server without installing the gui, so we add them through the CUPS web interface. When we do this we have to specify the CUPS server. The file client.conf may exist as a complete config file on some older versions (cupsys 1.1 ?). Acknowledgement Thanks to ethridgt for the post: Howto: configure cups on Ubuntu Server from command line http://www.ubuntuforums.org/showthread.php?t=240282
Last edited by metalhippyrich; February 21st, 2007 at 12:32 PM. Reason: To make it slghtly clearer.
I found this tutorial confusing. misleading, out-dated with current CUPS packages and conf files and the formatting was HARD to read. Please work on touching up this tutorial by using [ QUOTE] and [/ QUOTE] tags and using more seperated headers. The client.conf, cups.d/browse.conf & cups.d/ports.conf are in seperate files from cupsd.conf and I'm using CUPS 1.2.2
Last edited by altonbr; December 15th, 2006 at 09:05 PM.
Websites: brettalton.com, blog.brettalton.com, github.com/brettalton
This howto worked fine for me. (until my server decided to choke and need a new powersupply before it finished installing gutenprint drivers (tested using standard drivers first, so it did work fine))
Using ubuntu offline? Want to install new programs? Check out wubdepends If Stupidity got us into this mess, then why can’t it get us out?
Sorry you found it confusing, altonbr. I have now made it as clear as I possibly can. It is definitely upto date. In Ubuntu 6.06 browse.conf & ports.conf are indeed in seperate files, but in 6.10 it's all just in cupsd.conf, as the notes in the howto explain.
Well I guess everyone's entitled to their opinion,,, I actually loved the tutorial, it worked perfectly, was direct, informative and to the point. I hope you continue to contribute and I look forward to your future posts!!
This tutorial worked wonderfully. Thanks...
Originally Posted by metalhippyrich Specify the CUPS server To make the workstation pick up the printers published by our print server we have to tell it the CUPS server. If it does not already exist, make a file: /etc/cups/client.conf and add the line: ServerName 192.168.0.20 substituting your printserver's IP address or name. that was my missing link. had everything figured out except that. thank you so much.
1) Samba server howto | 2) mount windows/samba shares with CIFS + unicode | 3) best FTP server howto 4) NFS server/client howto | 5) Easy cross-platform LAN file sharing with FTP 6) Fix samba browsing!!! | 7) Fix Pulse audio Happy Ubunting!
I have a real hard time to find the correct uri with my printer I got an own kernel and somehow i think i disabled the printer-ports. and now i cannot find where its enabled again. and i cant find where the right uri is Examples: http://hostname:631/ipp/ http://hostname:631/ipp/port1 ipp://hostname/ipp/ ipp://hostname/ipp/port1 lpd://hostname/queue socket://hostname socket://hostname:9100
I registered on ubuntu forums just so I could say that this worked perfect for me on my headless ubuntu 6.06 server. Thanks, metalhippyrich
I'm having a real hard time setting up printing, and I stumbled in to this thread. I wonder whether it contains the answer to my problem, but as I'm a nervous type I wanted to consult before banging my head against it. Here is the problem: I have a small home 4 PC network (win for the kids to play, ubuntu for work) and a brother laser printer, model hl1230. The printer is attached to a generic 'print server' magic box that always worked fine under win, and is attached at IP 192.168.0.2 All machines on the network can see the admin interface, so it connects. Installing the printer via CUPS and following as best I can all of the other instructions I can find on the forum, I can get CUPS to tell me it sees the printer, and to accept print jobs- but which remain permanently in the queue. I think CUPS isn't telling me the truth when it says it's installed everything. Should I be treating my magic box as if it were a server, ie another PC, in the terms of this HOWTO? I'm running Feisty
Last edited by ginestre; May 24th, 2007 at 08:10 AM. Reason: spelling
Ubuntu Forums Code of Conduct