在Lunix系統下apt-get安裝mysql遇到/var/lib/dpkg/lock問題解決方案,apt-getdpkg
在Lunix系統下apt-get安裝mysql遇到/var/lib/dpkg/lock問題解決方案
主要原因是 apt還在運行,此時的解決方案是:
1、找到並且殺掉所有的apt-get 和apt進程
運行下面的命令來產生所有含有 apt 的進程列表,你可以使用ps和grep命令並用管道組合來得到含有apt或者apt-get的進程。
ps -A | grep apt
找出所有的 apt 以及 apt-get 進程
sudo kill -9 processnumber 或者 sudo kill -SIGKILL processnumber
如,下面命令中的9是SIGKILL的訊號數,它會殺掉第一個 apt 進程
sudo kill -9 進程ID
或者
sudo kill -SIGKILL 進程ID
如果 ps -A | grep apt 沒有出現任何進程的, 直接刪除鎖定檔案(詳見步驟2)
2、刪除鎖定檔案鎖定的檔案會阻止 Linux 系統中某些檔案或者資料的訪問,這個概念也存在於 Windows 或者其他的作業系統中。
一旦運行了apt-get 或者apt命令,鎖定檔案將會建立於一下三個檔案
/var/lib/apt/lists/、/var/lib/dpkg/、/var/cache/apt/archives/中。這有助於運行中的 apt-get 或者 apt 進程能夠避免被其它需要使用相同檔案的使用者或者系統進程所打斷。當該進程執行完畢後,鎖定檔案將會刪除。
當你沒有看到 apt-get 或者 apt 進程的情況下在上面兩個不同的檔案夾中看到了鎖定檔案,這是因為進程由於某個原因被殺掉了,因此你需要刪除鎖定檔案來避免該錯誤。
(1)方法1 --首先運行下面的命令來移除/var/lib/dpkg/檔案夾下的鎖定檔案:
sudo rm /var/lib/dpkg/lock
之後像下面這樣強制重新設定軟體包:
sudo dpkg --configure -a
(2)方法2 --刪除/var/lib/apt/lists/以及快取檔案夾下的鎖定檔案:
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
接下來,更新你的軟體包源列表:
sudo apt-get update
總結一下,對於 Ubuntu(以及它的衍生版)使用者在使用 apt-get 或者 apt 也叫aptitude 命令時遇到的問題,我們已經用兩種方法來解決了。