之前我在安裝screen時(shí)出現(xiàn)了下面的報(bào)錯(cuò)指令
wwwww77@wwwww77-VirtualBox:~$ sudo apt install screen
[sudo] password for wwwww77:
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavialable)
E: Unable to acquire the dpkg fronted lock (/var/lib/dpkg/lock-frontend), is another process using it?
在網(wǎng)上查了一些資料后了解到出現(xiàn)這個(gè)報(bào)錯(cuò)的原因是apt還在運(yùn)行,也就是這個(gè)進(jìn)程被占用了。
此處涉及到操作系統(tǒng)中鎖的一些概念,當(dāng)一個(gè)資源被某個(gè)進(jìn)程占用的時(shí)候,我們會(huì)把它上一個(gè)“鎖”,如果這個(gè)進(jìn)程沒有結(jié)束,那么其他需要這個(gè)資源的進(jìn)程就無法開始,這樣子保證了上一個(gè)進(jìn)程的完整性。
解決方法:
1:找到所有apt相關(guān)的進(jìn)程,并用命令殺死。
wwwww77@wwwww77-VirtualBox:~$ ps afx|grep apt
2162 pts/1 T 0:00 | \_ sudo apt get install screenps afx
2163 pts/1 T 0:00 | \_ grep --color=auto apt
2169 pts/1 T 0:00 | \_ sudo apt get install screen
2171 pts/1 S+ 0:00 | \_ grep --color=auto apt
1869 ? S 0:07 \_ /usr/lib/apt/methods/http
2122 ? S 0:00 \_ /usr/lib/apt/methods/http
wwwww77@wwwww77-VirtualBox:~$ sudo kill -9 2162
[sudo] password for wwwww77:
2.刪除lock文件
當(dāng)我們運(yùn)行了 apt-get 或者 apt 命令,鎖定文件將會(huì)創(chuàng)建于 /var/lib/apt/lists/、/var/lib/dpkg/、/var/cache/apt/archives/ 中。這能幫助運(yùn)行中的 apt 進(jìn)程不被其它需要使用相同文件的用戶或者系統(tǒng)進(jìn)程所打斷,當(dāng)進(jìn)程執(zhí)行完畢后,lock文件將會(huì)自動(dòng)被刪除。
接下來:
- 移除對(duì)應(yīng)目錄下的lock文件
wwwww77@wwwww77-VirtualBox:~$ sudo rm /var/cache/apt/archives/lock-frontend
wwwww77@wwwww77-VirtualBox:~$ sudo rm /var/lib/dpkg/lock-frontend
- 然后重新配置軟件包
wwwww77@wwwww77-VirtualBox:~$ sudo dpkg --configure -a
- 更新軟件包源文件
wwwww77@wwwww77-VirtualBox:~$ sudo apt update
wwwww77@wwwww77-VirtualBox:~$ sudo apt-get update
3.有需要時(shí)重啟一下
wwwww77@wwwww77-VirtualBox:~$ reboot
成功解決,可以安裝軟件了
同時(shí)也可能遇到:
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavialable)
一樣的問題,只不過lock-frontend變成了lock,同樣方法解決,只要在刪除進(jìn)程時(shí)改一下路徑就行了。
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock