终端错误响应

终端错误响应

我的笔记本电脑运行的是 ubuntu 16.04。当我在终端窗口输入命令来安装新软件时,出现以下错误:

ashutosh@ashutosh-HP-Pavilion-g4-Notebook-PC:~$ sudo apt-get install arduino
[sudo] password for ashutosh: 
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?

你能告诉我这是什么原因吗?

答案1

嗯,它确实说明了发生了什么:apt-get 无法获得对包管理文件的“锁定”(基本上,保证它是唯一可以访问它的人)因此,第一个想法是正在安装其他东西。例如,如果“软件更新程序”正在更新您的系统,同时您认为“哇,我想安装一些东西”,您就会得到这个信息。“软件更新程序”获得了锁定,您尝试获取它,但显然被拒绝了。

现在,您需要弄清楚哪个进程实际上拥有锁。为此,我们将使用 lsof,意思是“列出打开的文件”。感兴趣的文件是“/var/lib/dpkg/lock”。

$ lsof /var/lib/dpkg/lock

通常情况下,这应该会给你一个“拥有”锁的进程。关闭该进程就可以了。

如果没有进程,则很可能是过期锁。虽然我不需要这样做,但我会通过发出以下命令来删除锁:

sudo rm /var/lib/dpkg/lock

请注意,当您忘记包管理器命令(apt、apt-get、aptitude 等...)上的“sudo”时,您可能会收到错误,但您包含了它。

相关内容