Q4312079q是否可以对“是否要继续[y / N]?”回答“是”?

#1 楼

通过apt-get手册页:

apt-get -y install [packagename]


评论


这和@bclermont的答案一样吗(-是--force-是)?

– jjxtra
18年7月5日在19:16

-y缩写--yes是--assume-yes的同义词,而--force-yes是另一种选择。它用于确定可能带来更严重影响的提示,例如降级或破坏依赖关系。请参考手册页(在答案中链接),在此进行了详细说明。

– dlatikay
8月7日8:56

#2 楼

问题:

apt-get --yes install $something


,如果包签名所有者的公钥不在密钥环中或其他某些情况下,它将要求进行手动确认。要确保它不要求确认,只需执行以下操作:

apt-get --yes --force-yes install $something


如果要永久保留这些设置,请在/ etc / apt / apt中创建一个文件。 conf.d /,例如/etc/apt/apt.conf.d/90forceyes,内容如下:

APT::Get::Assume-Yes "true";
APT::Get::force-yes "true";


评论


+1为多样化。所有-y都变得无聊。 (此外,这是一个更完整的答案。)

–丹尼斯·威廉姆森
10年7月16日在23:30

当它说“要继续输入短语'是的,照我说的做!'”时,该功能也可以吗?如果没有解决方法,那该怎么办?尝试在chroot的debian映像中用systemd替换sysvinit时遇到此问题。

–Lennart Rolland
2015年5月29日19:38

请永远不要使用--force-yes:正如对debian-devel上一个相关线程的答复所暗示的那样,-force-yes可能会使系统无法使用。 (我不会拒绝投票,因为答案实际上解决了OP所说的问题,但是无论如何我都会在答案中添加一个大红色警告。)

–kostix
2015年6月10日14:16

APT :: Get :: Assume-Yes“ true”;帮助我避免了在Docker容器中进行安装的中断。

– Mehdi Sadeghi
16-2-22在11:18

强制赞成已被弃用。 tracker.mender.io/浏览/ CFE-2360

–拉瓦特
17-09-27在22:23



#3 楼

请注意,如果您还希望在出现交互式提示时自动使用默认答案,则可以使用DEBIAN_FRONTEND=noninteractive

单个安装:

sudo DEBIAN_FRONTEND=noninteractive apt-get -y install [packagename]


例如:

sudo DEBIAN_FRONTEND=noninteractive apt-get -y install postfix


所有更新:

sudo DEBIAN_FRONTEND=noninteractive apt-get -y update 



您可以设置更精细的选项与-o Dpkg::Options::="--force-confdef"-o Dpkg::Options::="--force-confold"

示例:

apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"




apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade



示例交互式提示:



有趣的阅读:执行Debian软件包的无人值守安装

评论


好答案。即使使用-y,我仍然会提示您是否要重新启动服务。我需要这样做以完全消除所有提示。

– Wisbucky
19年6月19日在22:01

#4 楼

APT::Get::Assume-Yes "true";

APT::Get::force-yes "true";


这至少应该在/etc/apt/apt.conf中并注释掉。我担心Ubuntu会一直采取Microsoft征求许可的方针。

“您确定吗?”,当然,我可以肯定,我不是训练有素的猴子,只是在键盘上敲了一下,然后点击快乐。

接下来,门会问:“你确定要出去吗?”
烤箱会问:“你确定要煮吗?”
汽车会问:“你确定要刹车吗?”
灭火器会问:“你确定要灭火吗?”
对不起,戴夫,我不能让您可以这样做。
HAL9000可以使用收缩,但数据不能或不能。

评论


与HAL9000和dpkg寻求许可的区别在于,HAL表示“否,句点”,而“是的,按我说的做”仅在您要完全彻底破坏系统时才会显示。如果那是您想要的,那么请继续。但是在这种情况下发出警告似乎是合理的。

– Wouter Verhelst
2015年6月11日13:41



9年后,我为挽救我的怨言而投票,并没有改变一点。愚蠢的是需要一个“ -y”。忽略“ -y”是不可接受的。

–keithpjolley
7月28日18:07

即使在2020年,这也很有趣且有意义。确认与要下载/存储的数据信息有关。诸如“您确定要花费此数量的数据和存储空间吗?”之类的东西。并且使用默认配置,当软件包很小时,某些apt安装会自动为YES。例如,在安装htop时。

–izzulmakin
12月14日9:59

#5 楼

从apt-get HOWTO

使用-y开关:
apt-get -y install packagename

#6 楼

apt-get -y update
apt-get -y install [package]


评论


+1,但是为什么更新需要权限?

–杏仁核
2012年5月22日20:31

@amyassin apt-get update命令需要root权限,因为它会更新本地软件包列表(索引),它们是root拥有的系统文件。

– jjmontes
2015年10月9日,11:31

@amyassin更新和升级请求许可,因为它们正在将内容下载到计算机上-从而占用了带宽和磁盘空间。信不信由你,回想过去,那些都是有价值的商品。

– Chiwda
19年11月23日,3:15

@Chiwda我生活在第三世界的国家,那些东西仍然是很有价值的商品:)

–杏仁核
1月1日下午13:05

#7 楼

通常,手册中的选项应该可以很好地发挥作用。

如果没有成功,可以尝试使用yes命令。

apt-get -y --force-yes install package


和我无用的shell配置脚本一起使用了

PS:
如果您想要非交互的但通常声明否,那么您可以尝试以下操作:

yes | apt-get -y --force-yes install package


#8 楼

新的(好)apt别名也采用了-y--yes)开关:

sudo apt -y upgrade


#9 楼

如果您始终希望使用-y参数,建议您将行

alias apt-get='apt-get -y' #Automatic -y argument on apt-get commands


添加到您的.bashrc中。正如注释所解释的那样,这将自动将-y参数添加到所有apt-get命令中,并因此批准所有下载。


注意:在您还原自己的命令之前,这将保持不变。 .bashrc并重新启动外壳。

#10 楼

我一直在寻找一种在脚本中选择非默认值的方法,特别是在安装wireshark时,并最终使用tmux与Shell进行了交互,如下所示:

# Start a detached root session
sudo tmux new-session -d
# Send the command
sudo tmux send-keys "DEBIAN_FRONTEND=readline apt-get -qq install wireshark-common; exit" enter
# Wait for the tmux session to get to the interactive stage
sleep 5
# Answer the question
sudo tmux send-keys "yes" enter
# Now attach to the session so we wait for command completion
sudo tmux attach


#11 楼

使用yes是独立于程序包管理器的。例如

 yes | apt-get install curl