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 配置文件时会感到相当容易。在这里将显示一些您可能想要改变初始值的设置范例。
![]() |
|
在编辑配置文件之前,您应该将原始文件做个副本并将其写保护,以便您可以将原始文件作为参考并在必要时重用它。 拷贝 |
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
![]() |
|
无论您在什么时间修改了 |
sudo /etc/init.d/cupsys restart
CUPS 服务器的其它一些配置在文件 /etc/cups/cups.d/ports.conf
中:
Listen:在 Ubuntu 的缺省状态下,CUPS 服务器安装后只监听 IP 地址为 127.0.0.1 的环回接口。为了让 CUPS 服务器可以在网络适配器真正的 IP 地址上监听,您必须要么指定一个指定主机名、要么指定一个IP 地址,随您选择。可以通过 Listen 语句来添加一个 IP 地址/端口对。例如:如果您的 CUPS 服务器在一个局域网中,其 IP 地址为 192.168.10.250,您想要该子网中的其它系统能够访问它,您可以编辑 /etc/cups/cups.d/ports.conf
并如下所示添加一个 Listen 语句:
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