更多信息:

更多信息:

使用 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/foomaticfoomatic-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,其中之一会导致问题。通过删除所有脚本并一一添加它们,您可以确定哪个脚本导致了问题。

  1. 将所有脚本移至子目录,以便忽略它们。

    cd /usr/lib/cups/driver
    mkdir disabled
    mv * disabled
    
  2. 跑步/usr/sbin/lpinfo -m。如果运行正确,它将输出打印机驱动程序列表。如果失败,它将打印“lpinfo:成功”。

  3. 对每个驱动程序执行此操作:将一个驱动程序移回并通过运行 lpinfo 检查是否是原因:

    mv disabled/dymo  .
    lpinfo -m
    
  4. 一旦输出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输出之后重试以确保确定。

相关内容