无法锁定管理目录(/var/lib/dpkg/),是否有其他进程在使用它?

我在尝试使用`apt-get'时得到这个错误。

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命令时忘记使用sudo,你会得到这个信息。

否则,这是一个迹象,表明有其他东西正在安装或删除软件,并在执行这些操作时锁定了apt数据库。能够做到这一点的程序有

  • 软件中心
  • 更新管理器
  • apt链接安装程序(我想这是通过SC进行的)。
  • apt-get 或 aptitude 命令行工具。
  • Synaptic软件包管理器

**注意:只有在万不得已的情况下才尝试下面的方法,因为它可能会使你的系统崩溃。首先,按照Faheem's answer中的描述,尝试杀死任何正在运行的aptaptitude实例。

你可以通过删除文件来强制关闭锁,但是不建议在没有安全关闭锁的程序的情况下这样做,因为你可能会导致损坏或中断安装(不好)。João提供的命令应该关闭持有锁的程序,然后删除锁,但不能保护你免受安装中断的影响。

sudo fuser -cuk /var/lib/dpkg/lock; sudo rm -f /var/lib/dpkg/lock   

而同样的命令也可以用于apt缓存锁。

sudo fuser -cuk /var/cache/apt/archives/lock; sudo rm -f /var/cache/apt/archives/lock
评论(15)

最有可能的方法是打这个。

  • 启动Ubuntu
  • 启动终端
  • 输入 "sudo apt-get install whatever"。

和命令行aptupdate-manager自动轮询重合。

*因此,如果你在几分钟内再试一次,应该可以解决这个问题。

评论(9)

只有一个程序可以持有该锁。确保你没有在运行aptitude、synaptic或adept。你可能打开了synaptic,或者打开了另一个运行apt-get的终端窗口,或者运行了update manager,检查一下,看看是否有这些程序在运行,如果有的话,关闭它,再试一下。

在终端中试试这个命令,看看有什么在运行

ps -e | grep -e apt -e adept | grep -v grep

注意: 如果没有打印出任何东西,在终端键入以下内容来解除锁定

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

现在你可以安装任何软件包了。

评论(7)