CUPS - 打印服务器

Ubuntu 印刷和打印服务的主要机制是 CUPS (Common UNIX Printing System,通用 UNIX 打印系统)。这个打印系统是一个免费可用的、可移植的打印虚拟层,并已成为大多数 Linux 发行版的新打印标准。

CUPS 管理打印作业和队列,并使用标准的 Internet 打印协议 (IPP) 提供网络打印,该协议提供最大范围的打印机支持,从点阵打印机到激光打印机以及位于两者之间的许多打印机。CUPS 也支持 PostScript Printer Description (PPD) 和网络打印机的自动检测,以及提供基于 Web 的简单配置和管理工具。

安装

若想在您的 Ubuntu 计算机中安装 CUPS,只需通过 sudo 运行 apt-get 命令并将要安装的包作为第一个参数即可。一个完整的 CUPS 安装有很多包依赖关系,但它们都可以在同一行上给出。在终端输入以下命令来安装 CUPS:

sudo apt-get install cupsys cupsys-client

认证您的用户密码之后,这些包将被下载并正确安装。在安装结束之后,CUPS 服务器将自动开始。为了发现并修复问题,您可以通过错误日志文件 /var/log/cups/error_log 来查看 CUPS 服务器的错误。如果错误日志并没有显示足够的用于找到和解决您所遇问题的信息,通过将配置文件 (下面要讨论) 中将LogLevel 语句从缺省的 "info" 改为 "debug" 甚至是记录每件事的 "debug2",以获得 CUPS 日志的详细信息。

配置

可以通过 /etc/cups/cupsd.conf 文件中的指令来配置通用 UNIX 打印系统服务器的行为的。CUPS 配置文件与 Apache HTTP 服务器的主配置文件语法相同,因此熟悉编辑 Apache 配置文件的用户在编辑 CUPS 配置文件时会感到相当容易。在这里将显示一些您可能想要改变初始值的设置范例。

[提示]

在编辑配置文件之前,您应该将原始文件做个副本并将其写保护,以便您可以将原始文件作为参考并在必要时重用它。

拷贝 /etc/cups/cupsd.conf 文件并对其写保护,可以在终端提示符后执行以下命令:

sudo cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.original
sudo chmod a-w /etc/cups/cupsd.conf.original

  • ServerAdmin:要配置指定 CUPS 服务器管理员的邮件地位,只需用你喜欢的文本编辑器简单编辑 /etc/cups/cupsd.conf 配置文件,并修改相应的 ServerAdmin 行即可。举个例子,如果您是 CUPS 服务器的管理员,并且您的邮件地址是'bjoy@somebigco.com',那么您可以象下面这样修改 ServerAdmin 行:

    ServerAdmin bjoy@somebigco.com
    

关于 CUPS 服务器配置文件中配置语句的更多范例,通过在终端提示符后输入以下命令可以查阅相关的系统手册页:

man cupsd.conf

[注意]

无论您在什么时间修改了 /etc/cups/cupsd.conf 配置文件,您都需要重启 CUPS 服务,在终端提示符后键入以下命令:

sudo /etc/init.d/cupsys restart

CUPS 服务器的其它一些配置在文件 /etc/cups/cups.d/ports.conf 中:

  • Listen: By default on Ubuntu, the CUPS server installation listens only on the loopback interface at IP address 127.0.0.1. In order to instruct the CUPS server to listen on an actual network adapter's IP address, you must specify either a hostname, the IP address, or optionally, an IP address/port pairing via the addition of a Listen directive. For example, if your CUPS server resides on a local network at the IP address 192.168.10.250 and you'd like to make it accessible to the other systems on this subnetwork, you would edit the /etc/cups/cupsd.conf and add a Listen directive, as such:

    Listen 127.0.0.1:631 # existing loopback Listen
    Listen /var/run/cups/cups.sock # existing socket Listen
    Listen 192.168.10.250:631 # Listen on the LAN interface, Port 631 (IPP)
    

    在上面的例子里,如果您不想 cupsd 监听环回地址 (127.0.0.1) ,您可能注释或删除了相关语句。但最好保留它以监听局域网 (LAN) 的以太网接口。为了能监听一个特定主机名所绑定的所有的网络接口,您可以为 socrates 主机名创建一个 Listen 条目,如下所示:

    Listen socrates:631 # Listen on all interfaces for the hostname 'socrates'
    

    或者忽略 Listen 语句并使用 Port 来代替,如:

    Port 631 # Listen on port 631 on all interfaces
    

参考资料

CUPS 网络