当您运行“apt install”命令时,如何阻止 Apt 将包标记为手动?
例如,当我意外地运行apt install <package-which-is-already-there>
(已经存在的包),它将包标记为manually installed
。
我非常讨厌这个。我怎样才能阻止 apt 这样做?它有时甚至会把事情搞得一团糟。
答案1
apt 默认会标记一个包您指定的就像manual
。您指定了它 —— 这就是‘手册’的定义。
您可以使用--mark-auto
apt 命令中的选项来覆盖此行为。(Ubuntu 22.04 及更新版本)
sudo apt install --mark-auto <package-name-1> <package-name-2> ... <package-name-n>
如果你忘记使用--mark-auto
,并且你的某些软件包被更改为,那么将 apt-marking从manual
改回 很简单:manual
auto
sudo apt-mark auto <package-name-1> <package-name-2> ... <package-name-n>
答案2
除了@user535733 提供的补救措施之外,您还可以在安装之前通过使用标志模拟安装来检查 apt 将执行的操作-s
:
apt install -s <package-which-is-already-there>
如果该包已经安装,你会看到如下一行:
<package-which-is-already-there> 已经是最新版本 (<version>)。
来自手册页man apt-get
:
-s、--模拟、--just-print、--dry-run、--recon、--no-act 不采取任何行动;根据以下内容模拟将要发生的事件 当前系统状态,但实际上不改变系统。锁定将 已禁用(Debug::NoLocking),因此系统状态可以在 apt-get 时改变 正在运行。非 root 用户也可以执行模拟,这可能 无法读取所有 apt 配置,从而扭曲模拟。 注意,此警告也会默认显示给非 root 用户 (APT::Get::Show-User-Simulation-Note)。配置项: APT::获取::模拟。 模拟运行打印出一系列行,每行代表一个 dpkg 操作:配置(Conf)、删除(Remv)或解包(Inst)。方括号 表示包装破损,空方括号表示包装破损 没有任何后果(罕见)。