对于 Ubuntu 15.04+ 版本(使用 systemd)

对于 Ubuntu 15.04+ 版本(使用 systemd)

在 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 restartservice 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 的设置,而不仅仅是打印机。

相关内容