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