#1 楼
通过apt-get手册页:apt-get -y install [packagename]
#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
评论
这和@bclermont的答案一样吗(-是--force-是)?
– jjxtra
18年7月5日在19:16
-y缩写--yes是--assume-yes的同义词,而--force-yes是另一种选择。它用于确定可能带来更严重影响的提示,例如降级或破坏依赖关系。请参考手册页(在答案中链接),在此进行了详细说明。
– dlatikay
8月7日8:56