在 Raring 中,每次我连接到网络时,Cups 都会自动安装网络中的所有打印机,有些甚至会安装多次。
此外,我时不时地会将 USB 打印机连接到笔记本电脑。尽管打印机已经配置好了,但列表中还是添加了另一台打印机。
我希望禁用此功能并仅允许手动安装打印机。我该怎么做?
答案1
我刚刚发现了一个可能最佳的解决方案来解决这个混乱局面。有一个名为“cups-browsed”的服务,它似乎负责在网络上查找所有可以找到的打印机并为您安装它们(哇 - 谢谢 - 不是)。由于这是 Upstart/Systemd 的工作,您可以使用以下命令停止该服务:
对于 Ubuntu 15.04+ 版本(使用 systemd)
sudo systemctl stop cups-browsed
其次是:
sudo systemctl disable cups-browsed
如果愿意,您仍然可以手动启动/停止服务:
sudo systemctl start cups-browsed
sudo systemctl stop cups-browsed
对于 Ubuntu 15.04 之前的版本(使用 upstart)
sudo service cups-browsed stop
/etc/init
更好的是,你可以通过添加一个包含单词的简单文本文件来阻止服务再次启动manual
。该文件必须命名为
cups-browsed.override
因此,只需使用以下命令启动 gedit:
gksudo gedit /etc/init/cups-browsed.override
输入manual
第一行也是唯一一行并保存文件。
下次重启时,服务不会重新启动。但是,如果您已经停止了服务,则无需重启。将此文件放入 /etc/init 后,只能使用以下命令手动启动服务(如果您需要/想要它):
sudo service cups-browsed start
-or-
sudo service cups-browsed stop`
我已经在一次重启后测试过这一点。打印仍然工作正常,到目前为止,重启后我不再安装数百台打印机。只显示我手动安装的打印机。
答案2
在 中/etc/cups/cups-browsed.conf
,设置指令:
BrowseProtocols none
然后,运行service cups-browsed restart
和service cups restart
。除了您自己添加的打印机外,应该看不到任何打印机。
答案3
如前所述,现在已在客户端 cups 库(即 GNOME 和 KDE 应用程序链接的 libcups.so)而不是 cupsd 服务器。因此更改 cups 服务器中的“浏览”设置不起作用。
$ ldd /usr/lib/x86_64-linux-gnu/libcups.so.2
...
libavahi-common.so.3 => /usr/lib/x86_64-linux-gnu/libavahi-common.so.3
libavahi-client.so.3 => /usr/lib/x86_64-linux-gnu/libavahi-client.so.3
...
即,即使您关闭本地 cups 服务器,此行为(在“打印”对话框中显示远程打印机)仍会发生。您可以通过关闭服务来禁用它avahi
,但这将禁用所有 zeroconf/mdns 相关功能。
但是,至少有一种方法可以关闭 avahi 的大部分功能(包括将远程打印机添加到 CUPS 客户端),同时保留 DNS 功能(例如,查找foo.local
-style 主机名时):
编辑 /etc/avahi/avahi-daemon.conf 并在以下[server]
部分添加enable-dbus=no
然后重新启动 avahi-daemon 服务。
答案4
cups 客户端库现在还可以从 Avahi(它实现了 zeroconf 或 Bonjour 或 mdns 或 dns-sd 等协议)获取网络打印机列表。在旧版本的 cups 中,这仅由 cups 服务器完成。
你可以使用如下 shell 命令查看网络上正在广播的内容avahi-browse -a | grep Printer
您可以使用 禁用 avahi sudo service avahi-daemon stop
,但这会停止全部基于 zeroconf 的设置,而不仅仅是打印机。