在sudo apt-get -y install oracle-java7-installer上的许可协议自动是

用于Ubuntu的Oracle Java包以交互方式询问许可协议。 所以我必须说'好',然后'是'每次,但我想自动化。 我做的是这样的:

sudo add-apt-repository -y ppa:webupd8team/java sudo apt-get update sudo apt-get -y install oracle-java7-installer 

有没有一个简单的方法来自动化协议过程,而不使用期望?

试试这个:

 sudo add-apt-repository -y ppa:webupd8team/java sudo apt-get update echo debconf shared/accepted-oracle-license-v1-1 select true | sudo debconf-set-selections echo debconf shared/accepted-oracle-license-v1-1 seen true | sudo debconf-set-selections sudo apt-get -y install oracle-java7-installer 

在我的debian 7.1上运行3rd和4th命令有所帮助,所以我认为同样可以在Ubuntu上也有帮助

如果你使用Ansible进行自动化,你可能想把它放到你的手册中:

 tasks: - name: add java PPA apt_repository: repo: "ppa:webupd8team/java" - name: accept oracle license debconf: name: "oracle-java7-installer" question: "shared/accepted-oracle-license-v1-1" value: "true" vtype: "select" - name: install jdk apt: name: "oracle-java7-installer" 

注:根据Roy Wood的 评论 , debconfvalue参数必须设置为"true" ,包括引号。

如果您使用Chef为Oracle服务器提供服务,您可以在bash执行资源中执行以下操作。

在上面解决maxym的答案

 bash 'java-licence-agree' do code <<-EOH echo debconf shared/accepted-oracle-license-v1-1 select true | debconf-set-selections echo debconf shared/accepted-oracle-license-v1-1 seen true | debconf-set-selections EOH end