創用 CC 授權條款
除非另有註明,本網站的著作Fygul Hether製作,以創用CC 姓名標示-非商業性-禁止改作 4.0 國際 授權條款釋出。

2022年4月16日 星期六

Ubuntu 20.04安裝HP印表機驅動程式

概要

之前寫的〈Ubuntu MATE 16.04安裝HP印表機驅動程式 〉,其中也補充個影片,但隨著時間過去,HP Linux Imaging and Printing的網頁做了修改,再者程式仍延用目前的Ubuntu 20.04已不用的舊版python,所以安裝工作無法成功。本文對此問題與解決方法做點簡單描述。環境是Ubuntu MATE 20.04, hplip-3.22.2。

※如果印表機接上後在Ubuntu 20.04即可正常使用,就不必再額外做以下的安裝,這裡是因預裝的驅動無法正常使用才採用的方式。如果以 sudo apt install hplip 裝好驅動,也可正常使用,也沒必要做以下工作。

前文有個的提醒,預裝的驅動若無法正常運作才採用此方法。

問題描述

執行下載的 hplip-3.22.2.run 安裝程式,採自動模式執行,過程中遇到幾個無法移除或安裝的問題,可以先中斷程式,自行手動執行那個無法移除或安裝的命令,看一下錯誤訊息以了解問題所在,設法解決後再重新執行安裝程式。會動用到aptitude,若不清楚如何使用,可參考一下這篇。然而最終仍有一個問題無法如此解決掉,出現這樣的訊息:


...
error: Command failed. Re-try #3...
Running 'sudo apt-get install --assume-yes python-pyqt5'
Please wait, this may take several minutes...
error: Package install command failed with error code 100
Would you like to retry installing the missing package(s) (y=yes*, n=no, q=quit) ?

此問題的癥結點在於HP印表機的程式仍依賴Python 2.7版的包 python-pyqt5 ,然而Ubuntu 20.04已再不提供。

解決方案

說明

花了點時間查到一篇Ask Ubuntu上的討論[1]與此相關,其中的內容正好可以解決此問題。以下先做點簡單說明,再附上調整過的解決方法。

python-pyqt5是舊版Ubuntu 18.04 (bionic)用,雖然加入bionic的源可以讓Ubuntu 20.04安裝它,然而它的依賴qtbase-abi-5-9-5,會在Ubuntu 20.04造成重大衝突。只好做個假的qtbase-abi,其內容其實是空的,目的只是讓Ubuntu 20.04把python-pyqt5裝上而已。解決方法如以下步驟:

  1. 做個qtbase-api-fake deb並安裝
  2. apt倉庫加入bionic的源
  3. 安裝python-pyqt5

解決方法

1. 做個qtbase-api-fake deb並安裝

若不想逐一輸入,也可將以下指令複製並貼上終端機執行:


# create the package structure:
cd /tmp
mkdir qtbase-abi-fake
mkdir -p qtbase-abi-fake/DEBIAN
mkdir -p qtbase-abi-fake/usr/lib/qtbase-abi-fake
touch qtbase-abi-fake/usr/lib/qtbase-abi-fake/nothing.txt

# create the deb control file (the guts):
cat <<_EOF > qtbase-abi-fake/DEBIAN/control
Package: qtbase-abi-fake
Version: 5.9.5
Section: custom
Priority: optional
Architecture: all
Essential: no
Installed-Size: 1024
Maintainer: atlas
Description: Fakes out python-pyqt5 from Ubuntu 18.04 to work on 20.04  
Provides: qtbase-abi-5-9-5
_EOF

# build the qtbase-abi-fake.deb file:
dpkg-deb --build qtbase-abi-fake

# install your newly created deb file:
sudo dpkg -i qtbase-abi-fake.deb

2. apt倉庫加入bionic的源


$ echo 'deb http://us.archive.ubuntu.com/ubuntu/ bionic universe multiverse' | sudo tee /etc/apt/sources.list.d/bionic-helper.list

3. 安裝python-pyqt5


$ sudo apt update
$ sudo apt install python-pyqt5

結語

以上解決方法是依[1]中較理想的方法所做的調整,筆者無意再測試其他方法,若有興趣可自行查看原文。

雖然最終是完成安裝工作,但右上角的印表機圖示無法正常顯示,印表機倒是可正常使用的,必要的話用控制中心把舊的印表機刪掉,把這次建立的印表機設為預設值。

參考與連結

  1. How to get PyQt5 for Python2 on Ubuntu 20.04

沒有留言:

張貼留言