# pkg install cups
FreeBSD 上的 CUPS
商标
FreeBSD 是 FreeBSD 基金会的注册商标。
许多制造商和销售商用来区分其产品的名称都被声称为商标。在本文件中出现这些名称的地方,如果 FreeBSD 项目意识到了商标声明,则这些名称后会加上“™”或“®”符号。
目录
摘要
关于在 FreeBSD 上配置 CUPS 的文章。
1. 通用 Unix 打印系统 (CUPS) 简介
CUPS(通用 UNIX 打印系统)为基于 UNIX® 的操作系统提供了一个可移植的打印层。它由 Easy Software Products 开发,旨在为所有 UNIX® 供应商和用户提供标准打印解决方案。
CUPS 使用互联网打印协议 (IPP) 作为管理打印作业和队列的基础。行式打印机守护程序 (LPD)、服务器消息块 (SMB) 和 AppSocket(又名 JetDirect)协议也得到支持,但功能有所减少。CUPS 为 UNIX® 上的实际打印添加了网络打印机浏览和基于 PostScript 打印机描述 (PPD) 的打印选项。因此,CUPS 非常适合在 FreeBSD、Linux®、Mac OS® X 或 Windows® 等混合环境中共享和访问打印机。
CUPS 的主网站是 http://www.cups.org/。
2. 安装 CUPS 打印服务器
要使用预编译的二进制文件安装 CUPS,请从 root 终端发出以下命令
其他可选但推荐的软件包是 print/gutenprint 和 print/hplip,它们都添加了适用于各种打印机的驱动程序和实用程序。安装完成后,CUPS 配置文件可以在目录 /usr/local/etc/cups 中找到。
3. 配置 CUPS 打印服务器
安装后,必须编辑一些文件才能配置 CUPS 服务器。首先,创建或修改(视情况而定)文件 /etc/devfs.rules 并添加以下信息以设置所有潜在打印机设备的适当权限,并将打印机与 cups
用户组相关联
[system=10] add path 'unlpt*' mode 0660 group cups add path 'ulpt*' mode 0660 group cups add path 'lpt*' mode 0660 group cups add path 'usb/X.Y.Z' mode 0660 group cups
请注意,X、Y 和 Z 应替换为与打印机对应的 /dev/usb 目录中列出的目标 USB 设备。要查找正确的设备,请检查 dmesg(8) 的输出,其中 ugenX.Y 列出了打印机设备,它是一个指向 /dev/usb 中 USB 设备的符号链接。 |
接下来,在 /etc/rc.conf 中添加两行,如下所示
cupsd_enable="YES" devfs_system_ruleset="system"
这两个条目将在启动时启动 CUPS 打印服务器,并分别调用上面创建的本地 devfs 规则。
要在某些 Microsoft® Windows® 客户端下启用 CUPS 打印,应取消 /usr/local/etc/cups/mime.types 和 /usr/local/etc/cups/mime.convs 中的以下行的注释
application/octet-stream
完成这些更改后,必须重新启动 devfs(8) 和 CUPS 系统,可以通过重新启动计算机或在 root 终端中发出以下两个命令来实现
# /etc/rc.d/devfs restart
# /usr/local/etc/rc.d/cupsd restart
4. 在 CUPS 打印服务器上配置打印机
安装和配置 CUPS 系统后,管理员可以开始配置连接到 CUPS 打印服务器的本地打印机。此过程与在其他基于 UNIX® 的操作系统(例如 Linux® 发行版)上配置 CUPS 打印机非常相似,甚至完全相同。
管理和管理 CUPS 服务器的主要方法是通过基于 Web 的界面,可以通过启动 Web 浏览器并在浏览器的 URL 栏中输入 http://localhost:631 来找到该界面。如果 CUPS 服务器在网络上的另一台机器上,请将服务器的本地 IP 地址替换为 localhost
。CUPS Web 界面非常直观,因为它包含用于管理打印机和打印作业、授权用户等的各个部分。此外,在管理屏幕的右侧,有一些复选框,可轻松访问常见更改的设置,例如是否共享连接到系统的已发布打印机、是否允许远程管理 CUPS 服务器,以及是否允许用户对打印机和打印作业进行更多访问和权限。
添加打印机通常与在 CUPS Web 界面的管理屏幕中单击“添加打印机”,或单击管理屏幕中的“发现的新打印机”按钮之一一样简单。当出现“设备”下拉框时,只需选择所需的本地连接打印机,然后继续执行操作。如果已添加 print/gutenprint-cups 或 print/hplip 端口或软件包,如上所述,则在后续屏幕中将提供其他打印驱动程序,这些驱动程序可能提供更高的稳定性或功能。
5. 配置 CUPS 客户端
配置好 CUPS 服务器并添加打印机并发布到网络后,下一步是配置客户端,或者要访问 CUPS 服务器的机器。如果只有一台充当服务器和客户端的桌面机器,则可能不需要其中的许多信息。
5.1. UNIX® 客户端
也需要在 UNIX® 客户端上安装 CUPS。在客户端上安装 CUPS 后,在网络上共享的 CUPS 打印机通常会被各种桌面环境(如 GNOME 或 KDE)的打印机管理器自动发现。或者,可以在客户端机器上通过 http://localhost:631 访问本地 CUPS 界面,并在管理部分单击“添加打印机”。当出现“设备”下拉框时,只需选择网络上的 CUPS 打印机(如果已自动发现),或选择 ipp
或 http
并输入网络上的 CUPS 打印机的 IPP 或 HTTP URI,通常使用以下两种语法之一
ipp://server-name-or-ip/printers/printername
http://server-name-or-ip:631/printers/printername
如果 CUPS 客户端难以找到在网络上共享的其他 CUPS 打印机,有时添加或创建文件 /usr/local/etc/cups/client.conf 并包含一个条目可能会有所帮助,如下所示
ServerName server-ip
在这种情况下,server-ip 将被替换为网络上 CUPS 服务器的本地 IP 地址。
5.2. Windows® 客户端
XP 之前的 Windows® 版本没有本机与基于 IPP 的打印机联网的功能。但是,Windows® XP 及更高版本具有此功能。因此,在这些版本的 Windows® 中添加 CUPS 打印机非常容易。通常,Windows® 管理员将运行 Windows® 添加打印机
向导,选择 网络打印机
,然后输入以下语法的 URI
http://server-name-or-ip:631/printers/printername
如果使用的是没有本机 IPP 打印支持的旧版 Windows®,则连接到 CUPS 打印机的通常方法是将 net/samba416 和 CUPS 结合使用,但这超出了本章的范围。
6. CUPS 故障排除
CUPS 的问题通常在于权限。首先,仔细检查如上所述的 devfs(8) 权限。接下来,检查文件系统中创建的设备的实际权限。确保用户是 cups
组的成员也很有用。如果 CUPS Web 界面管理部分中的权限复选框似乎不起作用,另一个解决方法可能是手动备份位于 /usr/local/etc/cups/cupsd.conf 的主 CUPS 配置文件,并编辑各种配置选项,尝试不同的配置选项组合。下面列出了一个示例 /usr/local/etc/cups/cupsd.conf 用于测试。请注意,此示例 cupsd.conf 牺牲了安全性以简化配置;在管理员成功连接到 CUPS 服务器并配置客户端后,建议重新访问此配置文件,并开始锁定访问权限。
# Log general information in error_log - change "info" to "debug" for # troubleshooting... LogLevel info # Administrator user group... SystemGroup wheel # Listen for connections on Port 631. Port 631 #Listen localhost:631 Listen /var/run/cups.sock # Show shared printers on the local network. Browsing On BrowseOrder allow,deny #BrowseAllow @LOCAL BrowseAllow 192.168.1.* # change to local LAN settings BrowseAddress 192.168.1.* # change to local LAN settings # Default authentication type, when authentication is required... DefaultAuthType Basic DefaultEncryption Never # comment this line to allow encryption # Allow access to the server from any machine on the LAN <Location /> Order allow,deny #Allow localhost Allow 192.168.1.* # change to local LAN settings </Location> # Allow access to the admin pages from any machine on the LAN <Location /admin> #Encryption Required Order allow,deny #Allow localhost Allow 192.168.1.* # change to local LAN settings </Location> # Allow access to configuration files from any machine on the LAN <Location /admin/conf> AuthType Basic Require user @SYSTEM Order allow,deny #Allow localhost Allow 192.168.1.* # change to local LAN settings </Location> # Set the default printer/job policies... <Policy default> # Job-related operations must be done by the owner or an administrator... <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs \ Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription \ Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job \ CUPS-Move-Job> Require user @OWNER @SYSTEM Order deny,allow </Limit> # All administration operations require an administrator to authenticate... <Limit Pause-Printer Resume-Printer Set-Printer-Attributes Enable-Printer \ Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs \ Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer \ Promote-Job Schedule-Job-After CUPS-Add-Printer CUPS-Delete-Printer CUPS-Add-Class \ CUPS-Delete-Class CUPS-Accept-Jobs CUPS-Reject-Jobs CUPS-Set-Default> AuthType Basic Require user @SYSTEM Order deny,allow </Limit> # Only the owner or an administrator can cancel or authenticate a job... <Limit Cancel-Job CUPS-Authenticate-Job> Require user @OWNER @SYSTEM Order deny,allow </Limit> <Limit All> Order deny,allow </Limit> </Policy>
最后修改日期:2024 年 4 月 25 日 由 Mateusz Piotrowski 修改