• 一次性修复“无法获得锁/var/lib/dpkg/lock”错误(Ubuntu)

    在虚拟机中运行的Debian/Ubuntu中,“无法获取lock/var/lib/dpkg/lock”错误非常常见。Internet上现有的解决方法(即终止apt get进程或删除锁定文件)并不理想,因为它们可能会损坏您的系统,并且您将来还会面临相同的错误。 一次性修复“无法获取锁/var/lib/dpkg/lock”错误 我会告诉你这个错误的真正原因,并告诉你如何一劳永逸地解决它。错误消息如下: E:无法获得lock/var/lib/dpkg/lock-open(11:资源暂时不可用)E:无法锁定管理目录(/var/lib/dpkg),是否有其他进程在使用它? 错误消息已经提示了问题的原因:另一个进程正在使用/var/lib/dpkg/。这是因为Ubuntu默认支持无人参与的安全更新升级。 当你的Ubuntu操作系统完成引导后,它会自动运行apt get update命令。如果有可用的安全更新,它将在后台安装它们。因此,如果同时运行sudo apt upgrade命令,则会显示上述错误。因为你在Virtualbox或VMware workstation中使用Ubuntu的频率不如在裸机上使用Ubuntu,所以你的Ubuntu虚拟机很少得到更新,所以你在虚拟机中看到这个错误的频率更高。 无论你是在裸机上还是在虚拟机上使用Ubuntu桌面,你都可以禁用无人值守的升级来一劳永逸地解决这个问题。 注意:这个错误很少发生在Ubuntu服务器上,建议您在服务器上启用无人值守升级,以自动安装安全更新。 下面是方法。开放软件&应用程序菜单中的更新。 然后单击更新选项卡。默认情况下,安全更新会自动下载和安装。您可以将其更改为立即显示,这样它就不会在后台运行sudo apt get upgrade命令。 然后输入用户密码以使此更改生效。 之后,重启你的电脑。 从命令行禁用无人参与的升级 也可以通过命令行获得相同的结果。在终端中,使用命令行文本编辑器(如nano)打开/etc/apt/apt.conf.d/20auto-upgrades文件。 sudo nano/etc/apt/apt.conf.d/20auto-upgrades 原始内容如下: APT::定期::更新包列表“1”;APT::Periodic::下载可升级的软件包“1”;APT::Periodic::AutocleanInterval“0”;APT::定期::无人值守升级“1”; 要禁用自动安全更新,请将其更改为 APT::定期::更新包列表“1”;APT::Periodic::下载可升级的软件包“0”;APT::Periodic::AutocleanInterval“0”;APT::定期::无人值守升级“0”; 要在Nano文本编辑器中保存文件,请按Ctrl+O,然后按Enter确认文件名。按Ctrl+X退出。然后重新启动你的电脑。 使现代化 一位读者告诉我,按照上面的说明操作后,如果他在Ubuntu启动完成后立即运行sudo apt update命令,仍然可以看到错误消息。这是因为背景“apt更新”尚未完成。 如果你是一个经常手动更新软件包的人,我建议将“自动检查更新”设置为每周,而不是每天。要真正一劳永逸地修复错误消息,请将该值设置为“从不”。 Ubuntu什么时候进行无人值守的升级? Ubuntu在系统启动后进行无人值守的升级。Systemd还可以执行无人值守的升级。《apt日报》。该服务用于每日更新套餐列表和apt每日升级。该服务用于每天下载和安装安全更新。您可以通过以下方式检查他们的状态: systemctl状态为每日apt。服务系统CTL状态apt每日升级。服务 每天都有。服务由apt每日控制。计时器。计时器就像一个cron作业,在指定的时间以相同的名称执行systemd服务。《apt日报》。定时器的配置文件是/lib/systemd/system/apt daily。计时器。您可以通过以下方式查看其内容: cat/lib/systemd/system/apt每日一次。计时器 输出: [Unit]Description=每日apt下载活动[Timer]OnCalendar=*-*-*6,18:00 RandomizedDelaySec=12h Persistent=true[Install]WantedBy=timers。目标 绿线表示apt每天更新。服务时间为每天6:00和18:00。RandomizedDelaySec=12h意味着如果另一个计时器具有相同的启动时间,则操作将推迟0~12小时。 apt每日升级。服务由apt每日升级控制。定时器,其配置文件为/lib/systemd/system/apt daily upgrade。计时器。 cat/lib/systemd/system/apt每日升级。计时器 输出: [Unit]Description=每日apt升级和apt后的清洁活动=每日apt。timer[timer]OnCalendar=*-*-*6:00 RandomizedDelaySec=60m Persistent=true[Install]WantedBy=timers。目标 正如你所见,apt每天都在升级。服务每天早上6点开始。RandomizedDelaySec=60m表示如果另一个计时器具有相同的启动时间,则操作将延迟0~60分钟。 两个。服务文件和两个。计时器文件由apt软件包安装,该软件包还附带了/usr/lib/apt/apt.systemd。由apt daily执行的daily shell脚本。服务和apt每日升级。服务 /usr/lib/apt/apt.systemd。daily shell脚本从/etc/apt/apt.conf.d/20auto-upgrades文件中读取配置。因此,修复上述错误不需要禁用这两个计时器。 就这样!我希望本文能帮助您修复Ubuntu上的“无法获得lock/var/lib/dpkg/lock”错误。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?

    2022.03.23 浏览:58