关于Ubuntu 16.04中E: Could not get lock /var/lib/dpkg/lock - open的三种解决方案

问题

Ubuntu中,有时候运用sudo  apt-get install 安装软件时,会出现如下的情况:

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?

 

三种解决方案

这是由于apt因某种原因还在后台运行

1、找到并且杀掉所有的apt-get 和apt进程

 运行下面的命令来生成所有含有 apt 的进程列表,你可以使用ps和grep命令并用管道组合来得到含有apt或者apt-get的进程。

ps -A | grep apt

kill所有的 apt 以及 apt-get 进程

$ sudo kill -9 processnumber
或者
$ sudo kill -SIGKILL processnumber

2、删除锁定文件

一旦你运行了 apt-get 或者 apt 命令,锁定文件将会创建于 /var/lib/apt/lists//var/lib/dpkg//var/cache/apt/archives/ 中。锁定的文件会阻止 Linux 系统中某些文件或者数据的访问, 这有助于运行中的 apt-get 或者 apt 进程能够避免被其它需要使用相同文件的用户或者系统进程所打断。当该进程执行完毕后,锁定文件才会删除。

刚装好的Ubantu系统,内部缺少很多软件源,这时,系统会自动启动软件源更新进程“apt-get”,并且它会一直存活。由于它在运行时,会占用软件源更新时的系统锁(以下称“系统更新锁”,此锁文件在“/var/lib/apt/lists/”目录下)。而当有新的apt-get进程生成时,就会因为得不到系统更新锁而出现"E: 无法获得锁 /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)"错误提示!

上次apt安装没有正常完成也会出现这种情况。

首先移除 /var/lib/dpkg/ 文件夹下的锁定文件:

$ sudo rm /var/lib/dpkg/lock

之后像下面这样强制重新配置软件包:

$ sudo dpkg --configure -a

3、删除锁定文件

$ sudo rm /var/lib/apt/lists/lock
$ sudo rm /var/cache/apt/archives/lock

以上三种方法任选其一即可。

似乎,有时三种方法都不行,等一会就可以了。。。

 

 

参考链接:

1、https://blog.csdn.net/u011596455/article/details/60322568

2、https://blog.csdn.net/zyxlinux888/article/details/6358615

 

posted @ 2019-02-22 23:25  Rogn  阅读(1401)  评论(0编辑  收藏  举报