安装
目前没有包含更新的hplip
软件包的PPA。
但用户可以根据他们的手册从HP下载并安装二进制文件。
在继续之前,您应该删除任何与hplip
相关的软件包,以避免可能的未来冲突。
如果您的系统是最新的Debian(11 bullseye及更高版本)或Ubuntu(20.04 LTS focal及更高版本),您应该检查是否安装了python2的遗留支持(请参见下面的“与最新的Debian和Ubuntu上的python2遗留支持不兼容”)
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
然后,您应该执行以下步骤:
步骤1:从官方链接下载 Ubuntu 自动安装程序(.run 文件)或者使用 wget
命令来下载最新版本。
wget -c https://download.sourceforge.net/project/hplip/hplip/3.23.3/hplip-3.23.3.run
步骤2:运行自动安装程序
sh hplip-3.23.3.run
然后按照屏幕上的说明操作(它会要求您的有 sudo
权限的用户输入密码以运行 apt
,并删除已安装的 hplip-gui
文件)。安装过程已在HPLIP 站点上有详细文档。
安装完成后,将显示打印机安装向导,并可以将打印机添加到系统中。
卸载
在这里,我们开始进行二进制HPLIP安装(因此我们没有安装HPLIP相关的deb软件包)。
假设我们已经使用文件hplip-3.23.3.run
(或其他版本)完成了安装。我们需要按照以下方式调用特殊的卸载脚本:
sudo hp-uninstall
sudo rm -vrf /usr/share/hplip/
sudo rm -vrf /root/.hplip
sudo rm -v /usr/share/hal/fdi/preprobe/10osvendor/20-hplip-devices.fdi
之后,我们可以选择安装官方的Ubuntu软件包:
sudo apt-get -o Dpkg::Options::="--force-confask" install --reinstall hplip hplip-data hplip-doc hplip-gui libsane-hpaio
注意:我已经向HPLIP的LaunchPad账户报告了
bug 1782137,要求开发人员在Ubuntu中包含deb软件包HPLIP组件的卸载功能。
近期Debian和Ubuntu上与Python2的兼容性问题
自从Debian 11(bullseye)和Ubuntu 20.04 LTS(focal)开始,Python2已经被弃用,因此许多旧的Python软件包已不再存在。此外,软件包必须明确引用python3
或者python2
而不能是python
。
为了向后兼容使用/usr/bin/python
的旧Python2代码,你的系统上可能已安装了两个软件包python-is-python2
和python-dev-is-python2
。它们只是安装一些链接,使得python
和python-config
指向这些命令的Python2版本。
例如,你需要这样做才能运行颜色校准套件DisplayCal(displaycal 3.8仍然依赖于Python2代码)。
最简单的检查方法是运行python --version
,看它是否显示Python版本2还是版本3。
如果你运行hplip安装包,它会失败,因为它试图找到要使用的python版本(可能是基于`python --version`或等效命令)。如果你已经安装了python2兼容性包,脚本会被欺骗,并尝试安装不再可用的python2依赖包。
如果你
真的需要从HP网站安装hplip,并且你确实需要基于python2的工具,你可以暂时更改python版本的链接:
sudo apt-get install python-is-python3 python-dev-is-python3
然后运行安装程序。
当一切都安装好后,编辑
/usr/share/hplip/*.py
的Python文件,将第一行(
#!/usr/bin/env python
)替换为
#!/usr/bin/python3
,因为这是Debian和Ubuntu的hplip软件包中的设置。
hp-toolbox
运行HPLIP。只有当您的设备需要最新的HPLIP版本时才需要进行二进制安装。 - N0rberthplip-3.21.8.run
坚持要安装python-pyqt5
、python-dbus
、python-dbus.mainloop.pyqt5
、python-notify
、python-reportlab
、python-gobject
这些不存在的软件包。这些软件包都有一个对应的python3-____
版本,除了python-gobject
。这些对应版本已经安装,但脚本在pyqt5 dbus上失败了。此脚本不兼容21.04 Hirsute Hippo! - ChrisAgahplip-3.21.8.run
似乎同时兼容python2
和python3
。在Ubuntu 21.04中,Python2已被弃用,但是安装了两个兼容性包python-is-python2
和python-dev-is-python2
,分别将/usr/bin/python
链接到/usr/bin/python2
和/usr/bin/python-config
链接到python2默认版本。如果可能,请卸载这两个包。如果不行,您可以通过更改/usr/bin/python
指向的Python版本来欺骗hplip-3.21.8.run
,但请注意,如果切换回Python2,hplip工具将无法正常工作。hplip应该使用Python3。 - ChrisAga/home/user/.local/lib/python3.8/site-packages/PyQt5/QtCore.abi3.so: failed to map segment from shared object
,然后又出现了error: Unable to load Qt4/Qt5 support. Is it installed?
,即使安装了pythonispython3也无法让它再次正常工作。 虽然可以进行打印机的交互式设置,但尝试扫描时会产生一个错误:/home/user/.local/lib/python3.8/site-packages/PyQt5/QtWidgets.abi3.so: failed to map segment from shared object
。 - Mr.Gosh