Ram*_*man 27 aptitude apt software-installation
我正在编写一个脚本,用于无人值守安装我们的 repo 中的一个软件包,它是一个带有 Debian 标记配置文件的软件包。是否有任何选项可以传递给apt-get
/aptitude
以便它接受新的配置文件?
基本上我需要一个apt
/aptitude
相当于 dpkg --force-confnew
我需要回答apt-get
使用 Y 安装时提出的以下问题
配置文件``/opt/application/conf/XXX.conf`'
==> File on system created by you or by a script.
==> File also in package provided by package maintainer.
What would you like to do about it ? Your options are:
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
The default action is to keep your current version.
Run Code Online (Sandbox Code Playgroud)
附加信息:
另外,我sudo
在管道中传递密码来执行命令
echo "mysudopass"|sudo -S apt-get mypackage
Run Code Online (Sandbox Code Playgroud)
当安装处于配置交互阶段时,这会标记安装错误。
我使用的是 Ubuntu 10.04
apt 版本:apt 0.7.25.3
为什么我不能使用dpkg
:这些 Debian 是从 Repo 安装的,我的机器上没有本地 Debian
for*_*sck 27
你可以像这样传递dpkg
参数apt-get
apt-get -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confnew install pkgname1 pkgname2 ...
Run Code Online (Sandbox Code Playgroud)
随着--force-confdef
如果旧的配置文件仍然存在,他们不会得到重写。所以你可能不会使用它,我只是为其他人记录它。
sudo
如果您否定用户的身份验证选项或NOPASSWD
在特定条目中添加标签,则不会要求输入密码。例如
someuser ALL = NOPASSWD: /usr/bin/apt-get
Run Code Online (Sandbox Code Playgroud)
您可以尝试以下操作:
export DEBIAN_FRONTEND=noninteractive
apt-get -q -y install whatever-2
Run Code Online (Sandbox Code Playgroud)
但请注意,这会产生一些影响,例如空的默认密码(也许您想要一些部署/配置工具,例如 puppet、chef、fabric...?)。
请参阅sudoers(5)了解如何允许无密码sudo
调用。
除了其他答案之外,您可能还必须设置环境UCF_FORCE_CONFFNEW=1。
例如,debianstretch 中的 openssh 使用 ucf(而不是 debconf)来openssh-server/openssh-7.4p1/debian/openssh-server.postinst
询问配置文件。openssh-server.postinst
(您可以通过使用http://security.debian.org/debian-security/pool/updates/main/o/openssh/openssh_7.4p1-10+deb9u4.dscdget
来查看)
除了成为debconf 预置的自由用户之外,我们还必须使用此页面上的所有技巧。
然而,我们确实停下来了,export DEBIAN_FRONTEND=noninteractive
因为我们想知道我们是否错过了一些东西(这可能很重要)。我们的用例是操作员开始操作。升级预计是非交互式的,但如果出现问题并且会出现对话框,则操作员会在场。您的情况可能有所不同。
但这export DEBIAN_FRONTEND=noninteractive
是你众所周知的大锤。
请注意:设置-o Dpkg::Options::=--force-confnew
和/或UCF_FORCE_CONFFNEW=1
意味着已安装软件包中的所有配置文件都将恢复为上游配置文件。例如,在 的情况下openssh-server
,您的/etc/ssh/sshd_config
设置将被重置为出厂设置。例如PermitRootLogin=yes
将被删除。但当然你不使用它,所以你会没事的!;-)
归档时间: |
|
查看次数: |
18362 次 |
最近记录: |