在Ubuntu中修复“Unable to lock the administration directory (/var/lib/dpkg/)” 无法锁定管理目录

当使用 apt-get命令还是相对较新的 APT软件包管理工具,Ubuntu Linux或它的衍生版本,如 Linux Mint (我其实作为我的主要操作系统使用做日常工作),你可能会遇到错误- “ unable to lock the administration directory (/var/lib/dpkg/) is another process using it“命令行上 另一个进程 。 这个错误可能是如此恼人,尤其是对于可能不知道错误的原因的新的Linux(Ubuntu)用户。 下面是一个例子,显示在 Ubuntu 16.10锁定文件错误:
youcl@youcl:~$ sudo apt install neofetch
[sudo] password for youcl:
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进程

运行下面命令 生成所有进程的列表的名字包括词 贴切 ,你会用得到所有 恰当的易于得到的进程列表包括 psgrep的命令与管道一起。
$ ps -A | grep apt

查找apt和apt-get进程

对于每一个 apt-get或者 容易的过程,你可以在命令的输出见上面, kill 过程使用下面的命令。 进程 ID(PI D)是从上面的截图中的第一列中。
$ sudo kill -9 processnumber
OR
$ sudo kill -SIGKILL processnumber
例如,在下面,其中该命令 9是用于 SIGKILL信号的信号数,将杀死第一 贴切过程:
$ sudo kill -9 13431
OR
$ sudo kill -SIGKILL 13431

2.删除锁文件

一个锁文件只是阻止访问到另一个文件(S)或你的Linux系统上的一些数据,这个概念存在于 Windows和其他操作系统也是如此。 一旦你运行 apt-get或者 恰当命令时,将根据这些目录 的/ var / lib中/公寓/表/, 在/ var / lib中/ dpkg的// var /缓存/ apt / archives目录/创建一个锁定文件。 这有助于避免已经从一个用户或将需要进行文件操作其他系统进程被中断运行正在使用apt-get或者容易的 apt-get或者 容易的过程。当进程完成执行时,锁文件然后被删除。 重要提示 :如果一个锁仍然在这两个目录中退出上面没有明显的apt-get或者容易进程运行,这可能意味着该进程举行一个原因或其他,因此,你需要以删除锁定文件清除错误。 首先执行以下命令删除锁定文件中 /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
总之,我们通过两个重要的方法走到应对所面临的Ubuntu(及其衍生物)的用户一个常见的问题,运行时 apt-get或者 容易以及 aptitude命令 。 你有任何其他可靠的方法共享意味着处理这个常见的错误?然后通过下面的反馈表单与我们联系。 此外,你可能也想学习 如何找到并杀掉正在运行的进程 ,并通过一个简单的指南读给 kill,pkill和killall命令,终止进程在Linux中。
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏