如果你apt-get在终端上运行命令并想在软件中心安装东西,中心说它会等到apt-get完成。我想知道是否可以在终端上做同样的事情,即apt-get在终端上等待直到锁定被释放。
我找到了这个链接,aptdcon用于安装东西。我想知道是否:
apt-get吗?aptdcon兼容的apt-get,也就是说,我可以同时使用安装的东西,而borking系统?imz*_*hev 13
apt11.9.1此提交中的Debian bug #754103解决了这个问题。该修复适用于 1.9.11 更新的 apt 版本。
- apt(8):等待锁定(关闭:#754103)
您可以通过设置为或 的-o DPkg::Lock::Timeout=60参数来启用此选项。哪里有等待锁的时间(以秒为单位)。aptapt-get60
apt -o DPkg::Lock::Timeout=60 install FOO
apt-get -o DPkg::Lock::Timeout=60 install FOO
Run Code Online (Sandbox Code Playgroud)
您可以通过运行两个相同的命令并且只是不立即回答第一个命令来测试这一点Do you want to continue? [Y/n]?在您运行的第二个命令中,它会告诉您,
等待缓存锁:无法获取锁
/var/lib/dpkg/lock-frontend。它由进程 946299 (apt) 持有
(转自Ask ubuntu)
现在有一个内置选项apt-get可以让您等待另一个 apt 完成。
使用该DPkg::Lock::Timeout选项为 apt-get 命令设置超时(以秒为单位)。此示例将等待 60 秒:
sudo apt-get -o DPkg::Lock::Timeout=60 install packagename
Run Code Online (Sandbox Code Playgroud)
如果将该值设置为 -1,它将永远等待。
sudo apt-get -o DPkg::Lock::Timeout=-1 install packagename
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅:在没有 hacky bash 脚本的情况下等待 apt 锁。此选项于 2020 年 2 月添加apt-get。