Debian / Ubuntu Linux 的套件管理是 APT,底層是 dpkg。
若直接使用 dpkg 來安裝套件,常常會遇到套件相依性(dependency)問題,要把相依性的套件安裝完成後,再去 dpkg 安裝才能安裝成功。
但是相依性套件若很多,可以怎麼做一次快速安裝呢?
dpkg install 遇到相依性問題的一次快速安裝解法
一般常見就是遇到所有相依問題的套件,那些套件名稱就全部蒐集起來,再分別 apt install,大致就是如下:
- dpkg -i xxx.deb
- apt install 1 2 3 ... package
- dpkg -i xxx.deb
但是第二步驟要安裝有時候蠻多又蠻費時的,此時可以使用 apt -f install 來一次安裝,如下:
- dpkg -i xxx.deb
- apt -f install # 一次安裝相依性缺少的套件
- dpkg -i xxx.deb
操作範例:
- $ sudo dpkg -i mysql-workbench-community_8.0.33-1ubuntu22.04_amd64.deb
Unpacking mysql-workbench-community (8.0.33-1ubuntu22.04) over (8.0.33-1ubuntu22.04) ... dpkg: 因相依問題,無法設定 mysql-workbench-community: mysql-workbench-community 相依於 libmysqlclient21 (>= 8.0.11)﹔然而: 套件 libmysqlclient21 未安裝。 mysql-workbench-community 相依於 libpcrecpp0v5 (>= 7.7)﹔然而: 套件 libpcrecpp0v5 未安裝。 mysql-workbench-community 相依於 libproj22 (>= 8.2.0)﹔然而: 套件 libproj22 未安裝。 mysql-workbench-community 相依於 libzip4 (>= 0.10)﹔然而: 套件 libzip4 未安裝。
- $ sudo apt -f install
下列的額外套件將被安裝: libmysqlclient21 libpcrecpp0v5 libproj22 libzip4 mysql-common proj-data
- sudo dpkg -i mysql-workbench-community_8.0.33-1ubuntu22.04_amd64.deb # 再補安裝主要套件
- 至此就安裝完成