使用 CUPS Web 界面安装新打印机时,不显示驱动程序列表,仅显示消息
Unable to get list of printer drivers:
Success
被展示。无法添加打印机。
问题:这里有什么问题?在互联网上搜索给出了有关该问题的多个报告,但很难找到解决方案。
更多信息:
另外,通过与 CUPS 通信的其他 GUI 添加打印机也不起作用。
此外,运行
lpinfo -m
一段时间后打印
lpinfo: success
而不是驱动程序列表,并运行
/usr/lib/cups/driver/foomatic list
需要非常长时间占用CPU。
答案1
gutenprint
此错误会随着、foomatic
和之间的交互而触发cups
。
快速解决方法:
- 消除
gutenprint
, - 或者:删除提供的软件包
/usr/lib/cups/driver/foomatic
(foomatic-db-engine
在 Arch Linux 上), - 或者:手动删除文件
/usr/share/foomatic/db/source/driver/gutenprint-ijs*.xml
。
更深入:
关于这个问题有一个内容丰富的讨论[已经在这里了],所以我只提供一个摘要:
gutenprint
安装两个相当大的 XML 文件,即/usr/share/foomatic/db/source/driver/gutenprint-ijs-simplified.5.2.xml
和/usr/share/foomatic/db/source/driver/gutenprint-ijs.5.2.xml
(如撰写本文时的当前版本所示)。foomatic
或者它的子包之一(foomatic-db-engine
在 Arch Linux 中)安装 perl 脚本/usr/lib/cups/driver/foomatic
。- 当 CUPS 尝试获取打印机驱动程序列表时,
/usr/lib/cups/driver/foomatic list
会调用 ,这会在大型 XML 文件上花费太长的时间(这是 的错误/usr/lib/cups/driver/foomatic
)。最终,它可能会完成,但 CUPS 在没有获得有关打印机驱动程序的任何信息的情况下提前超时并产生此奇怪的Success
错误。由于它没有获取有关打印机驱动程序的信息,因此除了手动编辑配置文件之外,无法通过任何 CUPS 接口添加打印机。
因此,只要/usr/lib/cups/driver/foomatic
没有修复以加快处理大文件的速度,如果想要同时安装gutenprint
和完整foomatic
安装,最好的解决方法可能是手动删除 gutenprint 提供的两个大 XML 文件。 (增加 CUPS 的超时时间并不是一件好事,因为可能会等待数小时。)
对于 Arch Linux,如果在本地构建软件包(例如通过 Arch 构建系统,或者通过安装并yaourt
设置customizepkg
),可以将以下补丁应用于软件包中,PKGBUILD
以便gutenprint
在软件包中进行修改:
--- PKGBUILD.old 2016-04-14 18:13:15.000000000 +0200
+++ PKGBUILD.new 2016-04-14 18:41:47.000000000 +0200
@@ -47,5 +47,8 @@
package() {
cd ${pkgname}-${pkgver}
make DESTDIR=${pkgdir} install
+
+ # The following line was added by '"'customizepkg-scripting'"', script '"'$0'"', in order to work around the bug described at https://bugs.archlinux.org/task/47718
+ rm -fv "${pkgdir}"/usr/share/foomatic/db/source/driver/gutenprint-ijs*.xml
}
答案2
我找到了一种方法来调试这个问题。 Cups 运行lpinfo -m
以获取打印机驱动程序列表,这会运行 中的脚本/usr/lib/cups/driver
,其中之一会导致问题。通过删除所有脚本并一一添加它们,您可以确定哪个脚本导致了问题。
将所有脚本移至子目录,以便忽略它们。
cd /usr/lib/cups/driver mkdir disabled mv * disabled
跑步
/usr/sbin/lpinfo -m
。如果运行正确,它将输出打印机驱动程序列表。如果失败,它将打印“lpinfo:成功”。对每个驱动程序执行此操作:将一个驱动程序移回并通过运行 lpinfo 检查是否是原因:
mv disabled/dymo . lpinfo -m
一旦输出
lpinfo: Success
,您移动的最后一个驱动程序就会引起问题。
答案3
我在尝试在 Raspberry Pi 上设置打印服务器时遇到了这个问题。似乎唯一有效的就是运行这个:
sudo /usr/lib/cups/daemon/cups-driverd list 1 0 requested-attributes=’ppd-make’
我在评论中找到了本文经过多次无果的尝试。运行后,CUPS Web UI 开始按预期工作。我不认为我曾经使用过 foomatic,而且我曾是使用古腾印刷。
答案4
我也有过“无法获取打印机驱动程序列表:成功” 最初在 Web 界面中(在一些明显的磁盘活动之后),但是lpinfo -m
随后在命令行中运行会产生一长串驱动程序 - 正如它应该的那样。根据这里已经给出的答案,这令人费解。
但后来我只是刷新了页面(涉及重新提交数据),并且驱动程序列表已成功显示在WebUI中,允许我继续并完成添加打印机。因此,可能值得稍后重试,也许是在检查lpinfo -m
输出之后重试以确保确定。