欢迎来到starnight_cyber的博客

【译】修复Ubuntu软件安装的锁文件问题

0 前言

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

  在Ubuntu Linux或其衍生版本(如Linux Mint(我实际上用作日常工作的主要操作系统))中使用apt-get命令或相对较新的APT软件包管理工具时,您可能会遇到错误–“无法 锁定管理目录(/ var / lib / dpkg /)是在命令行上使用它的另一个过程。

  对于特别是可能不确切知道错误原因的新Linux(Ubuntu)用户,此错误可能会令人讨厌。

  下面是一个示例,显示了Ubuntu 16.10中的锁定文件错误:

tecmint@TecMint:~$ sudo apt install neofetch
[sudo] password for tecmint:
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?

  下面的输出是同一错误的另一个可能的实例:

E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
E: Unable to lock directory /var/lib/apt/lists/ 
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或apt进程

  运行以下命令以生成名称由apt组成的所有进程的列表,通过使用ps和grep命令以及管道,您将获得包含所有apt或apt-get进程的列表。

$ ps -A | grep apt

  

 

   对于您可以在上面的命令输出中看到的每个apt-get或apt进程,请使用以下命令杀死每个进程。

  进程ID(PID)在上面的屏幕快照的第一列中。

$ sudo kill -9 processnumber
OR
$ sudo kill -SIGKILL processnumber

  例如,在下面的命令中,其中9是SIGKILL信号的信号编号,将杀死第一个apt进程:

2 Delete the lock Files

  lock文件仅阻止访问Linux系统上的另一个文件或某些数据,Windows和其他操作系统中也存在此概念。

  一旦运行apt-get或apt命令,就会在以下任何目录/var/lib/apt/lists/,/var/lib/dpkg/和/var/cache/apt/archives/下创建一个lock文件。  

  这有助于避免已经运行的apt-get或apt进程被用户或其他需要处理apt-get或apt所使用的文件的系统进程中断。 进程完成执行后,将删除lock文件。

  重要提示:如果在上述两个目录中仍然存在锁,并且没有运行明显的apt-get或apt进程,则这可能意味着该进程由于一个原因或另一个原因而被保留,因此您需要删除lock文件才能清除错误。

  首先执行以下命令以删除/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 update
OR
$ sudo apt-get update

  总之,在运行apt-get或apt以及aptitude命令时,我们已经通过两种重要的方法来解决Ubuntu(及其衍生产品)用户面临的常见问题。

3 绝招

  对,就是重启大法reboot。

-------------------------------------------

个性签名:如果世上的事都按你说的道理走 世界就不是现在这样了!

如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

posted @ 2020-11-17 11:15  starnight_cyber  阅读(192)  评论(0编辑  收藏  举报