用于 Ubuntu 的 Oracle Java 包以交互方式询问许可协议。所以我每次都必须说'OK'然后'yes',但我想自动化它。我要做的是:
sudo add-apt-repository -y ppa:webupd8team/java
sudo apt-get update
sudo apt-get -y install oracle-java7-installer
有没有一种简单的方法可以在不使用期望的情况下自动化协议流程?
用于 Ubuntu 的 Oracle Java 包以交互方式询问许可协议。所以我每次都必须说'OK'然后'yes',但我想自动化它。我要做的是:
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 上运行第 3 和第 4 个命令会有所帮助,所以我认为这对 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"
ppa:linuxupprising/java && oracle-java11-installer
对于使用 Linux Uprising Java 11 安装程序的任何人偶然发现此问题,请参阅以下内容:
而不是答案中的命令(在他们的网站上列出),你想要这个:
echo oracle-java11-installer shared/accepted-oracle-license-v1-2 select true | \
sudo /usr/bin/debconf-set-selections
这是我为基于 Ubuntu 18.04 的容器设置的 Docker:
RUN apt-get update && apt-install -y software-properties-common && \
add-apt-repository -y ppa:linuxuprising/java && \
apt-get update && \
echo oracle-java11-installer shared/accepted-oracle-license-v1-2 select true | sudo /usr/bin/debconf-set-selections && \
apt-get install -y oracle-java11-installer && \
apt install oracle-java11-set-default
对于 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 容器中完美运行。