有没有办法通过队列安装软件包,即使有另一个安装或升级实例正在运行?

有没有办法通过队列安装软件包,即使有另一个安装或升级实例正在运行?

很多时候都会出现这样的问题,我的连接带宽很小,当运行一个sudo aptitude safe-upgrade或类似的程序时,下载量很大,然后偶然发现一个我想通过包管理额外安装的程序,那么我必须自己记住。更糟糕的是,当我必须添加 ppa 时...

有没有办法将 PPA 并将要安装的包添加到队列中,即使有另一个安装或升级实例正在运行?

我正在使用 Ubuntu 11.10,并且不受 aptitude、apt-get 或 synaptic 的约束,但更喜欢 CLI 解决方案。

答案1

您可以在下载阶段安全地中断 apt。

否则,穷人的队列?

while pgrep aptitude; do sleep 10; done && aptitude install foo

:)

答案2

我知道这个回答有点晚了,但这是apt-iq我写的一个小脚本,叫做 (apt install query)。一旦有可能,它就会在后台运行 apt-get 命令。

#!/bin/bash
# apt-iq - An install queue system for apt-get.
# usage: apt-iq [aptgetargs].
#        apt-iq --nosep [aptgetargs]
# Run with --nosep to NOT split off and free the terminal.
if [ $1 == '--nosep' ]; then
  while :; do
    lsof /var/lib/dpkg/lock >/dev/null 2>&1
    [ ! $? = 0 ] && break
    sleep .01
  done
  apt-get ${@:2} -y -qq
  echo "DONE."
else
  $0 --nosep $@ &
fi

使用方法:

sudo apt-iq install foo
sudo apt-iq remove bar

相关内容