使用--assume-yes自动执行apt-get安装


66

我正在尝试编写bash脚本以安装软件列表。我习惯于--assume-yes跳过提示。

以下这条线某种程度上是行不通的:

sudo apt-get install python-software-properties --assume-yes

如果我尝试apt-get不使用--assume-yes它会起作用,但提示要求我:

please [Enter] to continue or ctrl+c to cancel adding it

Enter在运行apt-get install而不是使用时如何添加为命令--assume-yes


please [Enter] to continue or ctrl+c to cancel adding it它仅在您尝试添加PPA时出现。
Avinash Raj 2014年

Answers:


87

您的问题是该选项应该在软件包之前,而不是之后,这是正确的语法:

apt-get <options> command package=version/release

因此,要使其正常工作,应该是:

sudo apt-get --assume-yes install python-software-properties

apt-get在混合使用命令和选项时是可以原谅的,但是为了安全起见,您应该始终在命令前使用选项,并且切勿在软件包名称后放置选项或命令。


49

-y标志添加到apt-get install <package-name>如下所示的命令中,在安装软件包时不会出现任何提示。

sudo apt-get install -y <package-name>

apt-get --help

-y  Assume Yes to all queries and do not prompt

有没有之间的差异--assume-yes-y
彼得·莫滕森

2
@PeterMortensen他们做同样的事情。从手册页:-y, --yes, --assume-yes Automatic yes to prompts
davejagoda

1
请注意,这可能还不够,您可能还需要添加-o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"到命令中。有关详细信息,请参见raphaelhertzog.com/2010/09/21/…
TTimo

@TTimo哇!您发表评论后的6天,我走了过来,发现这正是我需要的答案!如果我能更多地支持您的评论,我会的!
Crimbo

随意编辑带有其他选项的答案。
Avinash Raj

1

另一种沉默有效的方法如下:

sudo DEBIAN_FRONTEND=noninteractive apt-get install -qq python-software-properties < /dev/null > /dev/null
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.