1. 程式人生 > >關於Ubuntu中E: Could not get lock /var/lib/dpkg/lock - open的三種解決方案

關於Ubuntu中E: Could not get lock /var/lib/dpkg/lock - open的三種解決方案

正常 num 後臺 dir 管道 mini not 文件夾 目錄

問題

在Ubuntu中,有時候運用sudo apt-get install 安裝軟件時,會出現如下的情況:

E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

三種解決方案

這是由於apt因某種原因還在後臺運行

1、找到並且殺掉所有的apt-get 和apt進程

運行下面的命令來生成所有含有 apt 的進程列表,你可以使用ps和grep命令並用管道組合來得到含有apt或者apt-get的進程。

ps -A | grep apt

kill所有的 apt 以及 apt-get 進程

$ sudo kill -9 processnumber
或者
$ sudo kill -SIGKILL processnumber

2、刪除鎖定文件

一旦你運行了 apt-get 或者 apt 命令,鎖定文件將會創建於 /var/lib/apt/lists//var/lib/dpkg//var/cache/apt/archives/ 中。鎖定的文件會阻止 Linux 系統中某些文件或者數據的訪問, 這有助於運行中的 apt-get 或者 apt 進程能夠避免被其它需要使用相同文件的用戶或者系統進程所打斷。當該進程執行完畢後,鎖定文件才會刪除。

剛裝好的Ubantu系統,內部缺少很多軟件源,這時,系統會自動啟動軟件源更新進程“apt-get”,並且它會一直存活。由於它在運行時,會占用軟件源更新時的系統鎖(以下稱“系統更新鎖”,此鎖文件在“/var/lib/apt/lists/”目錄下)。而當有新的apt-get進程生成時,就會因為得不到系統更新鎖而出現"E: 無法獲得鎖 /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)"錯誤提示!

上次apt安裝沒有正常完成也會出現這種情況。

首先移除 /var/lib/dpkg/

文件夾下的鎖定文件:

$ sudo rm /var/lib/dpkg/lock

之後像下面這樣強制重新配置軟件包:

$ sudo dpkg --configure -a

3、刪除鎖定文件

$ sudo rm /var/lib/apt/lists/lock
$ sudo rm /var/cache/apt/archives/lock

以上三種方法任選其一即可。

參考鏈接:

1、https://blog.csdn.net/u011596455/article/details/60322568

2、https://blog.csdn.net/zyxlinux888/article/details/6358615

關於Ubuntu中E: Could not get lock /var/lib/dpkg/lock - open的三種解決方案