Linux安裝軟件文件時(shí)遇到的常見報(bào)錯(cuò)和解決方法
我們?cè)谑褂胠inux時(shí),提示 Could not get lock /var/lib/dpkg/lock 報(bào)錯(cuò)?
有些小伙伴在使用 apt 包管理器更新或安裝軟件時(shí),可能會(huì)遇到過(guò)諸如以下的錯(cuò)誤提示:
這種時(shí)候大可不必驚慌,這些錯(cuò)誤提示一般都是因?yàn)槟承┏绦蛟谙到y(tǒng)后臺(tái)進(jìn)行著某些 apt 操作,因此鎖定了 apt 數(shù)據(jù)庫(kù),所以暫時(shí)不能進(jìn)行 apt 操作。
解決方案
那遇到這種情況,一般我們只需要安靜地等待幾分鐘,或者先去做其他的事情,比如瀏覽一下良許 Linux 公眾號(hào)里的文章,直到當(dāng)前的更新、安裝或卸載任務(wù)完成后,鎖就會(huì)自動(dòng)釋放,然后就可以進(jìn)行 apt 操作了。
當(dāng)然了,上面說(shuō)的是正常情況下的對(duì)應(yīng),那非正常情況下,比方說(shuō)你等了好多個(gè)幾分鐘鎖都還沒有被釋放,你就要看看是不是該進(jìn)程由于某些原因而卡住了并且一直占用著鎖。如果是的話,那你只能干掉這個(gè)進(jìn)程,然后刪除該鎖定了。
首先,我們先找出是哪個(gè)進(jìn)程占用了鎖文件 /var/lib/dpkg/lock
$ sudo lsof /var/lib/dpkg/lock
其他鎖文件對(duì)應(yīng)的命令
$ sudo lsof /var/lib/dpkg/lock-frontend
$ sudo lsof /var/lib/apt/lists/lock
然后得到輸出結(jié)果
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME unattende 1548 root 6uW REG 8,2 0 1181062 /var/lib/dpkg/lock
我們可以從結(jié)果中看到,該進(jìn)程的 PID 為 1548
接著,kill 掉這個(gè)進(jìn)程
$ sudo kill -9 1548
然后你就可以放心地刪除鎖文件
$ sudo rm /var/lib/dpkg/lock
或者
$ sudo rm /var/lib/dpkg/lock-frontend
$ sudo rm /var/lib/apt/lists/lock
如果需要,還可以刪除緩存目錄下的鎖文件
$ sudo rm /var/cache/apt/archives/lock
做完上面的步驟后,記得要運(yùn)行以下命令
$ sudo dpkg --configure -a
這樣問(wèn)題應(yīng)該就可以解決了。