尽管 Linux 发行版可能会选择安装它认为合适的软件,但通常情况下,他们至少可以从官方存储库安装它。 这些存储库可以由发行版和/或基于其他发行版直接维护,例如 Debian->Ubuntu->Linux Mint。 在这些情况下,包管理器是 APT,有时我们可以看到消息 “无法锁定 /var/lib/dpkg/lock” 在终端中,甚至在具有图形界面的工具中。
本文将尝试阐明一些问题。 关于它是什么以及如何解决错误 这导致我们看到消息“/var/lib/dpkg/lock could not be locked”,但我可以告诉你有一个非常简单的解决方案可以解决这个问题和许多其他问题,无论是在 Linux 中-基于分发或任何其他操作系统,包括移动。
指数
错误“无法锁定/var/lib/dpkg/lock”是什么意思?
通常,当我们看到错误“无法锁定 /var/lib/dpkg/lock”时,显示它的终端或软件表明另一个 APT 进程正在运行并使用我们正在尝试访问的相同数据库. 也就是说,新的 APT 进程试图锁定 /var/lib/dpkg/lock 文件, 他不能得到它,因为他很忙 并通知我们。
最常见的是 另一个 APT 进程,比如update,已经在运行,已经锁定了lock文件,所以无法迈出第一步,也就是locking said file。
如何解决错误
我们要做的第一件事,尤其是如果我们不喜欢使用终端,是 检查是否有任何软件应用程序正在运行. 例如,在 Ubuntu 中,我们可以查看 Ubuntu Software(GNOME Software 的分支)是否正在执行某些操作,以及 Software Update,顾名思义,负责更新软件的应用程序。 如果我们没有看到任何这些应用程序打开,我们也可以启动系统监视器并查找它们,看看它们是否在后台运行。
该 我们必须寻找的应用程序将取决于分布 我们正在使用的,因为 Ubuntu Software 不在 Kubuntu 中,Discover 也不在 Debian 的主要版本中。 每个发行版都使用它选择添加的工具来管理软件,它们可以阻止 GNOME 软件存档、发现、任何其他软件商店或更新工具。
无论他们是在前台还是在后台,一个选项是 有耐心 等着看你正在做的工作是否完成了。 有时我们看到一条错误消息,我们希望立即修复它,而解决方案是稍等片刻。
重新启动或注销就足够了
许多年前,一位朋友总是问我如何修复他在 Windows 中的崩溃。 有一次我几乎不再问他了,我推荐了他 重启 因为这几乎总是对他来说最好的解决方案。 在出现错误“could not lock /var/lib/dpkg/lock”的情况下也是一个可能的解决方案。 从头开始时,您可能会从更新工具锁定的文件开始,但它很快就会解锁,当您确认没有新的东西要安装或有但您已经通知我们时。
当然,这不是最优雅的解决方案,但它是最便宜的,如果您没有任何理由让您保持登录状态,它可能是最好和最快的。
当消息“无法锁定 /var/lib/dpkg/lock”没有消失时
当我们重新启动或等待一段时间并继续看到消息时,发生在我们身上的事情并不常见。 阻塞已被“挂起”,或者,值得冗余,被阻塞,因此已经值得拉动终端。
- 我们要做的第一件事是打开终端并使用以下命令识别正在运行的 APT 进程:
sudo lsof /var/lib/dpkg/lock
- 识别出进程后,我们使用此命令将其终止,将 PID 替换为我们将使用步骤 1 中的命令找到的进程号:
sudo kill PID
- 最后,我们再次尝试进行错误返回的APT管理。 它应该让我们继续前进。
如果这不能解决问题,我们可以采取更严厉的措施,因此您必须采取预防措施或采取额外措施。 这是“艰难的方式”:删除文件 /var/lib/dpkg/lock。 安全地执行此操作的步骤如下:
- 我们备份文件 /var/lib/dpkg/lock。 由于我们要做的是复制它,我们可以使用文件管理器,因为不需要超级用户权限。 从终端可以完成 cp /var/lib/dpkg/lock 新路径,将“新路径”更改为我们要制作备份副本的路径。
- 我们删除文件。 为此,有必要提取特权。 如果我们的文件管理器允许我们,我们可以编写,例如,不带引号的“sudo nautilus”以使用图形界面将其删除,但我认为打开终端并编写:
sudo rm /var/lib/dpkg/lock
- 删除文件后,我们可以重试我们不允许的操作。 如果我们写 sudo apt update 而且我们没有看到错误,错误已修复。
重启和耐心通常是最好的
尽管有一些方法可以修复它,例如上一点中解释的方法,但错误“无法锁定 /var/lib/dpkg/lock” 没什么大不了的 可以通过等待一段时间或重新启动来修复。 它通常会自行修复,如果没有,则重启是最不积极但最有效的方法。 现在,这就是 Linux,一切或几乎一切都有来自终端的解决方案,更不用说我们可以“杀死”任何我们想要的东西。
无论出于何种原因,我希望这里所说的内容能够对您有所帮助,要么以更积极的方式让消息消失,要么让您有一点耐心。
发表评论,留下您的评论
你好:
这个命令对我有用(在 Xubuntu 18.04 LTS 上测试过):
sudo fuser -vki /var/lib/dpkg/lock
它对其他锁定文件也有效,例如 /var/lib/dpkg/lock-frontend 或 /var/lib/apt/lists/lock。
问候