我无法更新安装了两个 Ubuntu 的系统:一个是 16.04 版,另一个是 17.04 版。在两者中,我都遇到了同样的错误。
例如,在 Ubuntu 16.04 中,我运行software updater并得到如下所示的结果。
我确实等了一段时间,但updater没有继续前进。
然后我按下了Stop按钮,它把我带到了下面的弹出窗口。
然后我按下按钮Install now,它把我带到下一个弹出窗口,如下所示。
我在这里等了一段时间,但它卡在了那里。
我无法在任一安装中更新。
由于我无法进行任何更新,有什么解决方案?
(还希望查看者查看未经授权的远程或其他方式的篡改是否会导致此错误。如果是,如何解决此问题?)
如果我无法更新,我可能不得不费力地从头开始重新安装这两个安装,这是我想避免的。
参考上面提到的“安装更新”的第三张图片:它确实继续进行并完全更新。但是在重新启动并再次运行后software updater,我遇到了一个新问题。现在运行时software updater,它会显示消息check your Internet connection。我已经在这里发布了这个问题。
小智 72
我会先尝试一种更柔和的方式。
停止自动更新程序。
sudo dpkg-reconfigure -plow unattended-upgrades
Run Code Online (Sandbox Code Playgroud)
在第一个提示下,选择不下载和安装更新。
重新启动。
确保任何处于不干净状态的软件包都已正确安装。
sudo dpkg --configure -a
Run Code Online (Sandbox Code Playgroud)让您的系统保持最新状态。
sudo apt update && sudo apt -f install && sudo apt full-upgrade
Run Code Online (Sandbox Code Playgroud)重新打开自动更新程序,现在已清除阻塞。
sudo dpkg-reconfigure -plow unattended-upgrades
Run Code Online (Sandbox Code Playgroud)
再次选择包 unattended-upgrades。
这是我的建议:
\n无人值守升级服务正在运行
\nsystemctl list-units --type=service | grep upgr\n unattended-upgrades.service \n loaded active running Unattended Upgrades Shutdown\nRun Code Online (Sandbox Code Playgroud)\n停止服务(\xe2\x80\x9cstop\xe2\x80\x9d,而不是\xe2\x80\x9cdisable\xe2\x80\x9d)
\nsudo systemctl stop unattended-upgrades\nRun Code Online (Sandbox Code Playgroud)\n证明,它不再运行:
\nsystemctl list-units --type=service | grep upgr\n( nothing )\n$>\nRun Code Online (Sandbox Code Playgroud)\n做你的升级事情
\n重新启动(或再次手动启动)后,该服务将自动再次启动。因此不存在留下永久性安全问题的危险。您可以通过再次输入来验证:
\nsystemctl list-units --type=service | grep upgr\n unattended-upgrades.service \n loaded active running Unattended Upgrades Shutdown\nRun Code Online (Sandbox Code Playgroud)\n
看到此问题后,请勿立即删除锁定文件。可能有一些实际更新包的过程。等待几分钟可能是值得的。
对我来说,它给出了以下错误:
athakur:~$ sudo apt-get upgrade
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
Run Code Online (Sandbox Code Playgroud)
很长一段时间后,我登录到我的 Ubuntu 系统,一些内部进程正在更新某些内容。它自己解决了(大约需要 5 分钟)。
您可以使用以下命令进行检查
如果您看到像“ apt.systemd.daily ”这样的进程正在运行,您可以等待一段时间。如果没有,您可以终止这些进程并恢复您想要的进程。
将 PID 替换为您从上述命令中获得的 PID。然后你可以运行
sudo dpkg --configure -a
Run Code Online (Sandbox Code Playgroud)
让 dpkg 自行修复。无论哪种情况,都只能作为最后的手段删除锁定文件。
小智 5
我只是从 Ask Ubuntu 上的另一个问题中复制粘贴了一个解决方案,“无法锁定管理目录 (/var/lib/dpkg/) 是另一个使用它的进程”。所有的功劳都归功于 zurdo。
这应该作为最后的手段。如果您不小心使用它,最终可能会导致系统损坏。请在执行此操作之前尝试其他答案。
您可以使用以下命令删除锁定文件:
Run Code Online (Sandbox Code Playgroud)sudo rm /var/lib/apt/lists/lock您可能还需要删除缓存目录中的锁定文件
Run Code Online (Sandbox Code Playgroud)sudo rm /var/cache/apt/archives/lock sudo rm /var/lib/dpkg/lock
在此之后,您应该能够进行更新!
| 归档时间: |
|
| 查看次数: |
138911 次 |
| 最近记录: |