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

时间:2013-10-09 15:09:01

标签: ubuntu automation apt

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

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

是否有一种简单的方法可以在不使用expect的情况下自动执行协议流程?

5 个答案:

答案 0 :(得分:103)

试试这个:

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上运行第3和第4个命令有帮助,所以我认为同样可以帮助ubuntu

答案 1 :(得分:36)

如果您使用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"

注意: value中的debconf参数必须设置为"true",包括引号,按照comment {{3} }}

答案 2 :(得分:7)

ppa:linuxuprising / java && oracle-java11-installer

对于使用Linux Uprising Java 11安装程序遇到此问题的任何人,请参阅以下内容:

  1. https://launchpad.net/~linuxuprising/+archive/ubuntu/java
  2. https://www.linuxuprising.com/2018/10/how-to-install-oracle-java-11-in-ubuntu.html

您希望这样做,而不是答案中的命令(如其网站上列出的那样):

  it('should have vampire return true if thirsty', function() {
    var vampire = new Vampire('Andy');
    assert.equal(vampire.thirsty, true);
  });

这是我的基于Ubuntu 18.04的容器的Docker设置:

echo oracle-java11-installer shared/accepted-oracle-license-v1-2 select true | \
sudo /usr/bin/debconf-set-selections

答案 3 :(得分:1)

对于Java 11,您可以使用以下代码:

add-apt-repository ppa:linuxuprising/java
echo debconf shared/accepted-oracle-license-v1-2 select true | debconf-set-selections
echo debconf shared/accepted-oracle-license-v1-2 seen true | debconf-set-selections
apt-get update && apt-get install -y oracle-java11-installer

这在docker容器中完美工作。

答案 4 :(得分:0)

如果您使用Chef通过Oracle Java配置服务器,则可以在bash执行资源中执行以下操作。

解决上面的maxym's回答

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