apt-get install with --assume-yes 仍然提示我安装依赖项

Ren*_*gas 95 apt

我正在尝试编写一个 bash 脚本来安装软件列表。我正在使用--assume-yes以克服提示。

下面这行不知何故不起作用:

sudo apt-get install python-software-properties --assume-yes
Run Code Online (Sandbox Code Playgroud)

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

please [Enter] to continue or ctrl+c to cancel adding it
Run Code Online (Sandbox Code Playgroud)

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

Bra*_*iam 120

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

apt-get <options> command package=version/release
Run Code Online (Sandbox Code Playgroud)

所以,为了让它工作,它应该是:

sudo apt-get --assume-yes install python-software-properties
Run Code Online (Sandbox Code Playgroud)

apt-get 在混合命令和选项时是宽容的,但为了安全起见,您应该始终在命令之前使用选项,并且永远不要在包名称之后放置选项或命令。


Avi*_*Raj 70

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

sudo apt-get install -y <package-name>
Run Code Online (Sandbox Code Playgroud)

apt-get --help

-y  Assume Yes to all queries and do not prompt
Run Code Online (Sandbox Code Playgroud)

  • @PeterMortensen 他们做同样的事情。从手册页:`-y,--yes,--assume-yes 自动是提示` (4认同)
  • 请注意,这可能还不够,您可能还需要添加 `-o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"` 到您的命令。有关详细信息,请参阅 https://raphaelhertzog.com/2010/09/21/debian-conffile-configuration-file-management-by-dpkg/。 (3认同)

小智 5

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

sudo DEBIAN_FRONTEND=noninteractive apt-get install -qq python-software-properties < /dev/null > /dev/null
Run Code Online (Sandbox Code Playgroud)