1. 程式人生 > 其它 >關於ubuntu安裝其他應用時出現的依賴問題解決方法

關於ubuntu安裝其他應用時出現的依賴問題解決方法


起因
只是因為昨晚在seed-Ubuntu20.04中安裝suricata時遇到了如下問題,即:
“The following packages have unmet dependencies:
Depends: xxx but it is not going to be installed
E: Unable to correct problems, you have held broken packages.”,因此花費了一些不必要的時間,現在做一下記錄,以提醒自己和其他的uu;

關鍵問題語句
"The following packages have unmet dependencies:";
"Depends: xxx but it is not going to be installed";
"Depends: xxx but xxx is to be installed";
"E: Unable to correct problems, you have held broken packages";

解決方案
(1)update更新源;
(2)安裝“aptitude”包管理工具,若有則直接跳過;
(3)用“aptitude”替換“apt-get”進行軟體安裝,並在第一個選擇項選“n”即可成功安裝;

sudo apt-get update
sudo apt-get install aptitude
sudo aptitude install liblzma-dev
# -> n  第一個選項選n;
# -> y  後續選項選y即可;
sudo apt-get install suricata

原因解釋
昨日晚上有看到別的uu寫的部落格,瞭解到安裝suricata時報錯大抵是因為其中一個依賴liblzma-dev並未下載,而安裝liblzma-dev時候則說“Depends: liblzma5 (= 5.2.4-1) but 5.2.4-1ubuntu1 is to be installed”(即出現了版本的差異),並指出“you have held broken packages”,因此在使用aptitude替換apt-get的時候會給出一個如下圖二的描述,執行由aptitude給出的解決方案以後就可以正常的安裝suricata了。