云网牛站
所在位置:首页 > Linux教程 > Ubuntu上用杀死Apt-get及删除锁定文件来修复could not get lock错误

Ubuntu上用杀死Apt-get及删除锁定文件来修复could not get lock错误

2019-06-10 16:23:42作者:戴进稿源:云网牛站

有时,当试图在Ubuntu终端上安装软件时,你会看到无法获得锁定错误,即could not get lock error,此错误令人恼火,因为它会锁定系统并有效地阻止你安装所需的软件。

 

关于Could not get lock error

发生此错误的原因通常是Ubuntu用户将关闭正在运行时过早安装某些内容的终端,当他们打开第二个终端并尝试使用软件包管理器时,会出现“could not get lock”错误,因为它不允许一次运行多个打包系统实例。

虽然很容易理解为什么包管理器会自行锁定,但这很烦人,遗憾的是,当Ubuntu用户遇到这个问题时,他们会感到恐慌,因为操作系统没有解释如何修复它。

修复“could not get lock”错误很容易,即使终端提示使它看起来很可怕和复杂,在这篇文章中,我们将向你展示在遇到它时应该做什么,如何解决它,以及如何防止将来遇到错误。

注意:你是Debian用户吗?本文也可以用在Debian系统上,Ubuntu是基于Debian操作系统构建的,因此我们在这篇文章中使用的命令将能用在Debian上,此方法也适用于Linux Mint、Elementary OS和其他Ubuntu衍生产品。

 

杀死Apt/Apt-get

正如本文的介绍中所述:当Ubuntu软件包管理器已经运行(在后台)时,出现“could not get lock”错误的原因,并且用户尝试再次启动它。

只要问题Ubuntu包管理器在后台持续存在,你将无法使用安装包工具来安装程序,并且该烦人的错误将持续存在。

值得庆幸的是,Ubuntu包管理器是一个与其他程序一样的程序,可以像一个程序一样进行管理。

有几种方法可以杀死Linux上的进程,最好是使用ps命令获取问题进程的进程ID(在本例中为Apt/Apt-get),然后,使用kill命令将其停止,参考Linux进程管理:用kill和killall命令杀死进程

因此,要开始,启动一个终端并在其末尾运行带有Apt的ps aux命令(如果使用它,则运行Apt-get):

ps aux | egrep 'apt'

Ubuntu上用杀死Apt-get及删除锁定文件来修复could not get lock错误

或者,对于Apt-get用户:

ps aux | egrep 'apt-get'

参考:Linux中apt与apt-get命令的区别与解释

查看终端,并读取输出中显示的数字,这是包管理器的进程号,取出该号码并将其插入kill命令以停止。

sudo kill -SIGKILL process-id-number

要么:

sudo kill -SIGTERM process-id-number

注意:在系统实用程序上使用kill命令时,请始终使用“SIGTERM”或“SIGKILL”参数,如果不这样做,则该过程可能不会停止运行。

运行kill命令应该结束包管理器进程,如果不确定Ubuntu软件包管理器是否确实已停止,请随时重新运行上面的ps aux命令,如果没有数字回来,问题进程就消失了,你将能够再次使用Ubuntu包管理器。

 

删除锁定文件

大多数情况下,如果Apt包管理器卡在后台并且没有响应,则可以使用kill命令结束进程,然而,有时候,结束这个过程是不够的。

如果遇到错误并且杀死Ubuntu包管理器没有帮助,那么你可以尝试另一种方法,它涉及直接修补包装工具放在你计算机上的“locks”。

Ubuntu上用杀死Apt-get及删除锁定文件来修复could not get lock错误

locks文件位于三个单独的目录中,要访问这些文件,你的终端会话必须具有root访问权限,使用sudo命令可以获得Ubuntu上的root访问权限:

sudo -s

获得root访问权限后,CD进入第一个目录:

cd /var/lib/dpkg/

rm lock

现在你已经处理了第一个锁定文件,现在是时候处理第二个锁定文件了:

cd /var/lib/apt/lists/

rm lock

用第二个锁文件处理,摆脱第三个和最后一个锁文件:

cd /var/cache/apt/archives/

rm lock

使用rm命令删除所有三个锁定文件后,Ubuntu软件包管理器应该再次开始工作,要测试它运行:

sudo apt update

 

修复损坏的包(Fix broken packages)

当你在安装程序时在Ubuntu上过早关闭终端时,程序包往往会中断,要解决此问题,你需要在“configure”选项旁边运行Dpkg命令:

dpkg --configure -a

完成上面的命令后,应修复所有内容,并准备好使用损坏的软件包。

 

相关主题

Ubuntu 18.04中出现could not get lock /var/lib/dpkg/lock的解决

精选文章
热门文章