如何在我的 Ubuntu 上安装最新的 HPLIP 以支持我的 HP 打印机和/或扫描仪?

N0r*_*ert 37 package-management printing hp

让我们假设一个人有一些现代 HP 打印机和/或扫描仪,官方存储库中的 HPLIP 包不支持这些打印机和/或扫描仪。

目前 Ubuntu 版本Universe Pocket 中以下版本

xenial (16.04LTS): 3.16.3+repack0-1
bionic (18.04LTS): 3.17.10+repack0-5
focal (20.04LTS): 3.20.3+dfsg0-2
hirsute (21.04): 3.21.2+dfsg1-2
Run Code Online (Sandbox Code Playgroud)

如果较新版本的 HPLIP支持打印机(在HP Developer Portal | All Supported Printer Models 中检查这一点),可以做什么?

N0r*_*ert 66

安装

目前没有更新hplip包的PPA 。

但是用户可以按照手册中的说明从 HP 下载和安装二进制文件。

在继续之前,您应该删除任何hplip相关的包以避免将来可能发生的冲突。

HP 在支持页面上有关于此问题的说明

警告:如果您正在升级 HPLIP 并且 HPLIP 已经预装在您的发行版中,或者如果您使用 RPM、DEB 或其他软件包安装 HPLIP,请使用特定于您的发行版的方法卸载以前的版本。如果不这样做,您可能会遇到包冲突问题或功能问题。

我已经通过实验确定了软件包列表(在 16.04 LTS、18.04 LTS、20.04 LTS 和 21.04 上测试),以下是命令:

sudo apt-get purge hplip hplip-data hplip-doc hplip-gui hpijs-ppds \
libsane-hpaio printer-driver-hpcups printer-driver-hpijs
sudo rm -rf /usr/share/hplip/

sudo apt-get autoremove
Run Code Online (Sandbox Code Playgroud)

然后您应该执行以下步骤:

  1. 步骤 1:从Ubuntu 的官方链接下载自动安装程序(.run 文件)或今天使用wget

    wget https://download.sourceforge.net/project/hplip/hplip/3.21.6/hplip-3.21.6.run
    
    Run Code Online (Sandbox Code Playgroud)
  2. 步骤 2:运行自动安装程序

    sh hplip-3.21.6.run
    
    Run Code Online (Sandbox Code Playgroud)

    然后按照屏幕上的说明进行操作(它应该询问您的具有sudo权限的用户的密码才能运行apt,并删除hplip-gui已安装的文件)。HPLIP 站点上已经详细记录了安装过程。

    安装完成后会显示打印机安装向导,您可以将打印机添加到系统中。


卸载

这里我们从二进制 HPLIP 安装开始(所以我们没有安装与 HPLIP 相关的 deb 包)。

假设我们hplip-3.21.6.run在当前目录中有安装文件。我们需要从中提取存档,然后运行卸载脚本。

sh hplip-3.21.6.run --noexec
cd hplip-3.21.6
sudo python3 ./uninstall.py
sudo rm -vrf /usr/share/hplip/ 
sudo rm -vrf /root/.hplip
sudo rm -v /usr/share/hal/fdi/preprobe/10osvendor/20-hplip-devices.fdi
Run Code Online (Sandbox Code Playgroud)

之后,我们改为安装官方 Ubuntu 软件包(可选):

sudo apt-get install hplip-gui
Run Code Online (Sandbox Code Playgroud)

注意:我已经向 HPLIP 的 LaunchPad 帐户报告了错误 1782137,要求开发人员包括从 Ubuntu 卸载 deb-packages HPLIP 组件的功能。

  • 这帮助我摆脱了 python 的依赖问题。谢谢你。 (3认同)

Fel*_*aia 11

直到几周前,HP Developers - HP Linux Imaging and Printing提供的最新 HPLIP 驱动程序版本是3.18.12。在 Ubuntu 16.04 官方存储库中,可用版本为3.16.3

首先,我尝试安装从网站下载的最新版本。但是,该软件包引发了兼容性问题python-gobject。正如N0rbert(主要答案)所指出的,在安装另一个版本之前,您需要完全卸载 HPLIP 的实际版本。手动执行,如N0rbert 所述。之后,确保不再存在以下文件(或相应的文件夹为空):

/etc/hp/hplip.conf
/var/lib/hp/hplip.state
/usr/share/hplip/
/usr/share/ppd/hplip
~/.hplip/hplip.conf
/etc/cups/ppd/HP-....ppd
Run Code Online (Sandbox Code Playgroud)

我不确定上面列出的所有文件是否都绝对需要删除。但是,随着它们消失,我可以毫无问题地继续进行新安装。

尽管 repo 没有最新版本的驱动程序,但我决定通过 安装它apt,因为它可以正常工作而不会与其他预安装的软件包崩溃。我做了如下:

  1. sudo apt install hplip (适用于大多数 HP 打印机和扫描仪的 Linux 驱动程序)。

  2. sudo apt install hplip-gui (hp-plugin 需要)。

  3. hp-plugin (作为普通用户)。

    该插件是驱动程序的专有“部分”,HP 未开源。没有它,设备将无法工作。系统将提示您接受条款并为您安装的驱动程序的确切版本安装所需的插件。

  4. hp-doctor (确保一切都安装正确,尤其是插件)。

  5. hp-setup 添加连接的设备,或使用此时已安装的 HP 软件(带图形界面)。

  6. 转到Ubuntu 系统设置并使用 HPLIP 添加新的打印机/扫描仪。

PS:到2019年1月,最新版本是3.19.1,我没有测试过。

通常,如果您真的不需要最新版本的软件包,则更喜欢安装官方存储库中提供的软件包。之后您更有可能不会遇到问题。

  • 对于像我这样拥有由“update-alternatives”工具管理的多个“python2”和“python3”版本的“Ubuntu 18.04”的人([检查这里](/sf/ask/3014382591/)如果你愿意要了解更多信息),运行 `hp-doctor` 和 `hp-setup` 命令可能无法与 **error: cupsext 加载。请检查 hplip 安装**消息打印出来作为响应。**解决方案:** 运行 `python3 $(which hp-doctor)` 和 `python3 $(which hp-setup)` 命令。 (2认同)
  • 这个答案非常重要,因为它包括 hp 插件步骤,这似乎是实际工作所必需的。 (2认同)