脚本化更新期间的conffile提示

脚本化更新期间的conffile提示

apt-get update && apt-get upgrade -y我有一个每周在许多服务器上运行的脚本。

当使用 Debian 9 进行测试时,我注意到它会出现一个提示,询问是否保留修改后的配置文件或安装维护者的版本 ( /etc/ssh/sshd_config),如下面的屏幕截图所示: 包配置...修改配置文件

我的问题是:我需要在命令中包含什么才能不提示?期望的行为是它将保留本地配置文件并继续升级。

我努力了:

  • 添加--force-yesapt-get upgrade
  • 在升级命令之前或之后添加选项,因为我不确定顺序

    apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade
    
  • 使用内容创建/etc/apt/apt.conf.d/local

    Dpkg::Options {
        "--force-confdef";
        "--force-confold";
    }
    
  • 编辑/etc/dpkg/dpkg.conf

    force confdef,confold
    

我尝试过的任何方法都无法抑制提示,并且我不确定下一步要尝试什么。

我的很多尝试都是基于这篇 StackExchange 帖子,无人值守升级和修改配置文件,这向我介绍了这个unattended-upgrades包。我们目前不使用这个,但如果这是在 Debian 上完成每周更新/升级的正确方法,那么我会研究它。

谢谢!

答案1

尝试将 DEBIAN_FRONTEND 设置为非交互式。例如

export DEBIAN_FRONTEND=noninteractive
apt-get update && apt-get upgrade -y

man 7 debconf更多详情请参见:

非交互的

这是反前端。它根本不会与您互动,并使所有问题都使用默认答案。它可能会将错误消息邮寄给 root,但仅此而已;否则它是完全安静且不引人注目的,是自动安装的完美前端。

如果您使用此前端,并且需要问题的非默认答案,则需要预置 debconf 数据库;请参阅下面的部分无人值守的软件包安装更多细节。

相关内容