關於Ubuntu中E: Could not get lock /var/lib/dpkg/lock - open的三種解決方案
問題
在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的三種解決方案