Ubuntu 如何使apt get在无人参与的debian from Repo安装中接受新的配置文件

Ubuntu 如何使apt get在无人参与的debian from Repo安装中接受新的配置文件,ubuntu,installation,apt,deb,non-interactive,Ubuntu,Installation,Apt,Deb,Non Interactive,我正在编写一个脚本,用于在我们的Repo中无人值守地安装一个包,它是一个软件包,其中一个debian标记为config。 是否有任何选项可以传递给apt get/aptitude,以便它接受新的配置文件 基本上,我需要一个相当于dpkg的apt/aptitude——force confnew 我需要回答以下问题,而apt获得安装与Y 配置文件“/opt/application/conf/XXX.conf” ==>由您或脚本创建的系统上的文件 ==>文件也在包维护者提供的包中 你想怎么办?你的选

我正在编写一个脚本,用于在我们的Repo中无人值守地安装一个包,它是一个软件包,其中一个debian标记为config。 是否有任何选项可以传递给apt get/aptitude,以便它接受新的配置文件

基本上,我需要一个相当于dpkg的apt/aptitude——force confnew

我需要回答以下问题,而apt获得安装与Y


配置文件“/opt/application/conf/XXX.conf”

==>由您或脚本创建的系统上的文件

==>文件也在包维护者提供的包中

你想怎么办?你的选择是:

Y or I  : install the package maintainer's version

N or O  : keep your currently-installed version

  D     : show the differences between the versions

  Z     : background this process to examine the 
默认操作是保留当前版本


其他信息:

另外,我在管道中传递sudo密码以执行命令

echo“mysudopass”| sudo-S获得mypackage

这是在安装处于配置交互阶段时标记安装中的错误

我在Ubuntu 10.04上 apt版本:apt 0.7.25.3

为什么我不能使用dpkg:这些Debian是从Repo安装的,我的机器上没有本地Debian


提前感谢大家的帮助

我认为您正在寻找的apt-get命令行是

apt-get -o Dpkg::Options::="--force-confnew" install your-package
至于sudo-S问题,可以尝试在“|”字符周围添加一些空格。
如果没有,这个问题可能会有用。

我尝试了其他答案中的建议,发现在尝试安装localepurge软件包时,这些建议是不够的

使用debconf set selections设置所需内容后,我必须使用以下命令:

DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confnew" install localepurge
只有将DEBIAN_FRONTEND环境变量设置为noninteractive,我才能强制localepurse执行我要求的操作。这可能适用于其他软件包

当然,如果需要,可以使用脚本导出变量,但要注意,它可能会与其他包混淆。例如:

#!/bin/sh
export DEBIAN_FRONTEND=noninteractive
apt-get -o Dpkg::Options::="--force-confnew" install -y localepurge foo bar

如果-y告诉apt get停止提问(请参见)。

您还可以通过创建
/etc/apt/apt.conf.d/local
并添加以下内容来配置
apt

Dpkg::Options {
   "--force-confdef";
   "--force-confold";
}

我也不得不加上-y。apt get-o Dpkg::Options::=“--force confnew”安装程序包