CUPS (Common Unix Printing System) is an open source modular printing system developed by Apple Inc. for Unix-like computer operating systems and OS X which allows a computer to act as a print server. When running it acts as a print spooler and scheduler that can receive requests either from the localhost or from other network computers. It uses the Internet Printing Protocol (IPP) to manage print jobs and queues. It has an built-in web-based interface and it's free software released under the GNU GPL.
This month to celebrate 15 years of existence CUPS released version 2.0 of it's software with more focus on performance and security and I could read from STR #3917 that cups now added systemd support. You can find the Release notes on the website.
CUPS is the standard printer system in most Linux distributions today, it is available in there repositories for easy installation from the package managers. So if it isn't installed by default in your Linux distribution you can easily get it with the package manager like this:
# apt-get install cups
# yum install cups
Or if you wish the latest version you can install it from source. You can get the source with wget from CUPS website. Then you can decompress it and compile the source with the usual "./configure", "make", "make install".
$ wget https://www.cups.org/software/2.0.0/cups-2.0.0-source.tar.bz2
$ tar jxvf cups-2.0.0-source.tar.bz2
$ cd cups-2.0.0
$ sudo make install
After you finish the installation you will have to run the cups daemon so you can start printing or share your printer over the network. To do so type the following command:
$ sudo cupsd -C /etc/cups/cupsd.conf
CUPS comes with a web-based interface that you can access with your favorite browser on port 631 (by default). To do so open the browser and type http://localhost:631 or if you access it from a remote host http://IP_ADDRESS:631/
Using CUPS is easy to use and well documented, you can access the documentation right from the home page of the web interface and see the current printers installed and the jobs running.
You can find out more about how to send documents to print using lp command by following our article on printing.