Linux安装软件时很多人会遇到这个报错,如何解决?
提示 Could not get lock /var/lib/dpkg/lock 报错?
有些小伙伴在使用 apt 包管理器更新或安装软件时,可能会遇到过诸如以下的错误提示:
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: 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?
E: Could not get lock /var/lib/apt/lists/lock – open (11: Resource temporarily unavailable)
E: Unable to lock directory /var/lib/apt/lists/
这种时候大可不必惊慌,这些错误提示一般都是因为某些程序在系统后台进行着某些 apt 操作,因此锁定了 apt 数据库,所以暂时不能进行 apt 操作。
解决方案
那遇到这种情况,一般我们只需要安静地等待几分钟,或者先去做其他的事情,比如浏览一下良许 Linux 公众号里的文章,直到当前的更新、安装或卸载任务完成后,锁就会自动释放,然后就可以进行 apt 操作了。
当然了,上面说的是正常情况下的对应,那非正常情况下,比方说你等了好多个几分钟锁都还没有被释放,你就要看看是不是该进程由于某些原因而卡住了并且一直占用着锁。如果是的话,那你只能干掉这个进程,然后删除该锁定了。
首先,我们先找出是哪个进程占用了锁文件/var/lib/dpkg/lock
$ sudo lsof /var/lib/dpkg/lock
其他锁文件对应的命令
$ sudo lsof /var/lib/dpkg/lock-frontend
$ sudo lsof /var/lib/apt/lists/lock
然后得到输出结果
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
unattende 1548 root 6uW REG 8,2 0 1181062 /var/lib/dpkg/lock
我们可以从结果中看到,该进程的 PID 为 1548
接着,kill 掉这个进程
$ 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
做完上面的步骤后,记得要运行以下命令
$ sudo dpkg --configure -a
这样问题应该就可以解决了
最后,祝你好运!
> 2020 精选 阿里/腾讯等一线大厂 面试、简历、进阶、电子书 「**良许Linux**」后台回复「**资料**」免费获取
看完的都是真爱,点个赞再走呗?您的「三连」就是良许持续创作的最大动力!
1. 关注**原创**「**良许Linux**」,第一时间获取最新Linux干货!
2. 后台回复【资料】【面试】【简历】获取精选一线大厂面试、自我提升、简历等资料。
3. 关注我的博客:[lxlinux.net](http://www.lxlinux.net)
我告诉你msdn版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!