安裝軟件時,系統(tǒng)提示有進程在占用安裝進程。
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
意思:E:無法獲取lock/var/lib/dpkg/lock frontend-打開(11:資源暫時不可用)
E:無法獲取dpkg前端鎖(/var/lib/dpkg/lock frontend),是否有其他進程正在使用它?
然后需要查看進程dpkg是否被別的程序占用
root@yaoyafei:~# ps -ef | grep apt
root 2265 1 0 07:41 ? 00:00:00 /bin/sh /usr/lib/apt/apt.systemd.daily install
root 2279 2265 0 07:41 ? 00:00:00 /bin/sh /usr/lib/apt/apt.systemd.daily lock_is_held install
root 11217 11199 0 07:43 pts/0 00:00:00 /usr/bin/dpkg --status-fd 12 --no-triggers --unpack --auto-deconfigure /var/cache/apt/archives/libcurl3-gnutls_7.58.0-2ubuntu3.14_amd64.deb
root 11224 10931 0 07:43 pts/1 00:00:00 grep --color=auto apt
查資料說這是一個后臺程序,在后臺運行,并在啟動系統(tǒng)時自動檢查系統(tǒng)更新。 在Ubuntu18.04及更高版本中,它甚至可以自己下載并安裝重要的安全更新。 查看到是一個系統(tǒng)開機內(nèi)核更新的進程,建議等待幾分鐘,當然你也可以直接殺掉 如果其他程序正在使用apt,使用Linux命令行查找并終止正在運行的進程。
其他的問題可以參考 https:///could-not-get-lock-error/ 在大多數(shù)情況下,上述方法可以解決問題。但我的情況有點不同。我正在更新我的系統(tǒng),不小心關閉了終端。由于這個原因,沒有運行apt的進程,但它仍然向我顯示了錯誤。 在這種情況下,根本原因是鎖文件。如前所述,鎖文件用于防止兩個或多個進程使用相同的數(shù)據(jù)。運行apt或apt get命令時,它們會在一些地方創(chuàng)建鎖文件。如果之前的apt命令沒有正確終止,則不會刪除鎖定文件,因此它們會阻止apt get或apt命令的任何新實例。 要解決此問題,只需刪除鎖定文件。但在此之前,最好停止使用鎖文件的任何進程。 使用lsof命令獲取保存鎖文件的進程的進程ID。檢查錯誤并查看它所抱怨的鎖文件,并獲取保存這些鎖文件的進程的id。
sudo lsof /var/lib/dpkg/lock
sudo lsof /var/lib/apt/lists/lock
sudo lsof /var/cache/apt/archives/lock
這些命令可能不返回任何內(nèi)容,或者只返回一個數(shù)字。如果它們確實返回至少一個數(shù)字,請使用這些數(shù)字并像這樣終止進程(將<process\u id>替換為從上述命令中獲得的數(shù)字):
sudo kill -9 <process_id>
現(xiàn)在,您可以使用以下命令安全地刪除鎖定文件
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
之后,重新配置包:
sudo dpkg --configure -a
現(xiàn)在,如果運行sudo apt update命令,一切都會好起來
其他情況2 無法獲取dpkg前端鎖,錯誤如下
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
如前上面的問題所述,您應該使用lsof命令找出哪個進程保持鎖定前端:
sudo lsof /var/lib/dpkg/lock-frontend
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
unattende 2823 root 5uW REG 8,2 0 145221 /var/lib/dpkg/lock-frontend
unattende 示正在運行無人值守的安全升級,等待流程完成。 如果是其他進程則終止該進程,然后刪除鎖文件。
kill -9 PID
sudo rm /var/lib/dpkg/lock-frontend
sudo apt update
錯誤信息:dpkg: error: dpkg frontend is locked by another process dpkg:錯誤:dpkg前端被另一進程鎖定 首先,找出保存鎖文件的進程的id
sudo lsof /var/lib/dpkg/lock-frontend
上面的命令將為您提供使用鎖定文件的進程的詳細信息。使用進程ID終止此程序:
sudo kill -9 PID
卸下鎖并重新配置dpkg
sudo rm /var/lib/dpkg/lock-frontend
sudo dpkg --configure -a
以上文章參考:https:///could-not-get-lock-error/
|