X

dpkg install 遇到相依性問題的一次快速安裝解法

Debian / Ubuntu Linux 的套件管理是 APT,底層是 dpkg。

若直接使用 dpkg 來安裝套件,常常會遇到套件相依性(dependency)問題,要把相依性的套件安裝完成後,再去 dpkg 安裝才能安裝成功。

但是相依性套件若很多,可以怎麼做一次快速安裝呢?

dpkg install 遇到相依性問題的一次快速安裝解法

一般常見就是遇到所有相依問題的套件,那些套件名稱就全部蒐集起來,再分別 apt install,大致就是如下:

  1. dpkg -i xxx.deb
  2. apt install 1 2 3 ... package
  3. dpkg -i xxx.deb

但是第二步驟要安裝有時候蠻多又蠻費時的,此時可以使用 apt -f install 來一次安裝,如下:

  1. dpkg -i xxx.deb
  2. apt -f install # 一次安裝相依性缺少的套件
  3. dpkg -i xxx.deb

操作範例:

  1. $ 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 未安裝。
  2. $ sudo apt -f install
    下列的額外套件將被安裝:
    libmysqlclient21 libpcrecpp0v5 libproj22 libzip4 mysql-common proj-data
  3. sudo dpkg -i mysql-workbench-community_8.0.33-1ubuntu22.04_amd64.deb # 再補安裝主要套件
  4. 至此就安裝完成
Tsung: 對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
Related Post