![当工作包完成后,开始安装包](https://linux22.com/image/27072/%E5%BD%93%E5%B7%A5%E4%BD%9C%E5%8C%85%E5%AE%8C%E6%88%90%E5%90%8E%EF%BC%8C%E5%BC%80%E5%A7%8B%E5%AE%89%E8%A3%85%E5%8C%85.png)
假设我通过在基于 Debian 的系统上安装一个软件包sudo aptitude install mypackage
。假设包很大,下载和安装需要很长时间。
当我注意到我想在调用该命令后安装另一个包时,我必须等到第一个包完全安装。
是否可以使 aptitude 在第一个包完成后自动开始安装第二个包?
答案1
您可以列出多个要同时安装的软件包:
aptitude install package1 package2
如果您确实关心它们的安装顺序(您几乎肯定不关心,因为 aptitude 自动考虑依赖性和其他微妙之处),或者正在寻找更通用的解决方案,请执行以下操作:
aptitude install package1 && aptitude install package2
&&
如果前一个命令成功(返回退出状态 0),逻辑 AND ( ) 运算符将仅执行第二个命令。
如果您甚至问如何做到这一点后您最初执行了该命令,请尝试另一个终端:
aptitude-after() {
printf '%s\n' "Waiting for current aptitude operations to finish"
while pgrep -x aptitude >/dev/null 2>&1; do
sleep 10
done
printf '%s\n' "Done, running new instance of aptitude."
aptitude "$@"
}
将其运行为aptitude-after install mypackage2
.它将等待所有当前的 aptitude 实例完成。