apt-get install 时自动保留当前版本的配置文件

Fal*_*ken 22 ubuntu debian apt

我需要自动安装一个包,其配置文件已经存在于服务器上。

我正在寻找类似的东西:

apt-get install --yes --force-yes --keep-current-confs mysql-server

可能是一个愚蠢的问题,但我找不到这样的选择。

Fal*_*ken 37

Raphael Hertzog 的博客上找到了答案:

apt-get install -o Dpkg::Options::="--force-confold" --force-yes -y mysql-server
Run Code Online (Sandbox Code Playgroud)

配置是 dpkg 的角色,因此选择要保留哪个 conf 文件。

您还可以通过在/etc/apt/apt.conf.d/其中创建一个包含以下内容的文件来将其添加到系统的配置中 :

Dpkg::Options {
   "--force-confdef";
   "--force-confold";
}
Run Code Online (Sandbox Code Playgroud)


edl*_*erd 19

在当前的 ubuntu 系统上,您需要更多:

export DEBIAN_FRONTEND=noninteractive ; apt-get dist-upgrade -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" --force-yes
Run Code Online (Sandbox Code Playgroud)

  • "--force-confold:不修改当前配置文件,新版本安装后缀为.dpkg-dist。单独使用这个选项,即使你没有修改的配置文件也不会被修改。你需要结合它使用 --force-confdef 让 dpkg 覆盖您尚未修改的配置文件。” (5认同)
  • `--force-yes` 应该作为最后的手段使用,因为它有机会破坏你的系统![有关使用 --allow 开关的详细信息,请访问此管理页面](https://manpages.debian.org/stretch/apt/apt-get.8.en.html)。 (2认同)
  • --allow-* 标志是在我最初回复后发布的版本中引入的:)尽管今天的人们应该更好地使用它们来支持 --force-yes 标志。 (2认同)