Ram*_*Nat 22 ubuntu install apt deb non-interactive
我正在编写一个脚本,用于无人值守安装我们的Repo中的软件包,它是一个软件包,其中一个Debian标记为config.有没有我可以传递给apt-get/aptitude的选项,以便它接受新的配置文件.
基本上我需要一个相当于dpkg --force-confnew的apt/aptitude
在使用Y进行apt-get安装时,我需要回答以下问题
配置文件`/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
Run Code Online (Sandbox Code Playgroud)
默认操作是保留当前版本.
附加信息:
另外,我在管道中传递sudo密码来执行命令
echo"mysudopass"| sudo -S apt-get mypackage
当安装位于Config Interactive阶段时,这会标记安装错误.
我在Ubuntu 10.04 apt版本:apt 0.7.25.3
为什么我不能使用dpkg:这些debian将从Repo安装,我的机器上没有本地debian
感谢大家提前帮助!!!!
pwa*_*wan 28
我认为你正在寻找的apt-get命令行是
apt-get -o Dpkg::Options::="--force-confnew" install your-package
Run Code Online (Sandbox Code Playgroud)
至于你的sudo -S问题,也许可以尝试在'|'周围添加一些空格 字符.不是,问题如何在不覆盖TTY的情况下将密码传递给su/sudo/ssh?可能有用.
Ken*_*arp 10
我尝试了其他答案中的建议,发现在尝试安装localepurge包时还不够.
使用debconf-set-selections设置我需要的东西后,我不得不使用以下内容:
DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confnew" install localepurge
Run Code Online (Sandbox Code Playgroud)
只有将DEBIAN_FRONTEND环境变量设置为非交互式,才能强制localepurge执行我所要求的操作.其他包可能也是如此.
当然,如果您愿意,可以使用脚本导出变量,但要注意它可能会混乱其他包.例如:
#!/bin/sh
export DEBIAN_FRONTEND=noninteractive
apt-get -o Dpkg::Options::="--force-confnew" install -y localepurge foo bar
Run Code Online (Sandbox Code Playgroud)
-y告诉apt-get停止提问(参见手册页).
| 归档时间: |
|
| 查看次数: |
8609 次 |
| 最近记录: |