zoukankan      html  css  js  c++  java
  • 【译】修复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。

  • 相关阅读:
    UWP中实现大爆炸效果(二)
    UWP中实现大爆炸效果(一)
    c# 【电影搜索引擎】采集电影站源码
    安利一个聚合搜索导航站,及怎么样设置成默认的搜索引擎
    女朋友经常问影视剧, 答不上来怎么办?
    宝塔linux面板, 服务器日志分析与流量统计这款插件的mysql版优化。
    苹果cms自动采集,重复执行遇到“上次执行时间: --跳过”的解决办法
    苹果cms, 后台设置保存不了的解决办法
    解决 C:WINDOWSsystem32inetsrv ewrite.dll 未能加载。返回的数据为错误.
    img error 图片加载失败的最佳方案
  • 原文地址:https://www.cnblogs.com/Hi-blog/p/fix-var-lib-dpkg-lock.html
Copyright © 2011-2022 走看看