Ubuntu16 升级软件包出现错误

root@hosltoc:~# sudo apt-get update
Reading package lists... Done
E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
E: Unable to lock directory /var/lib/apt/lists/

出现这个问题的原因可能是有另外一个程序正在运行,导致资源被锁不可用。而导致资源被锁的原因,可能是上次安装时没正常完成,而导致出现此状况。

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

解决方法

找出并杀掉apt-get或者apt进程

用这个命令查看一下进程:

ps -e | grep apt

显示结果如下:

6362 ? 00:00:00 apt

6934 ? 00:00:00 apt-get

7368 ? 00:00:00 synaptic

执行

sudo killall apt

sudo killall apt-get

sudo killall synaptic

再次在终端里查看ps -e | grep apt 没有任何结果了

删除锁定文件

首先运行下面的命令来移除 /var/lib/dpkg/ 文件夹下的锁定文件:

sudo rm /var/lib/dpkg/lock

强制重新配置软件包

sudo dpkg --configure -a

也可以删除 /var/lib/apt/lists/ 以及缓存文件夹下的锁定文件:

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

更新软件包源列表
sudo apt-get update

OK!

转自:https://www.tecmint.com/fix-unable-to-lock-the-administration-directory-var-lib-dpkg-lock/