web-dev-qa-db-fra.com

Oui automatiquement à l'accord de licence sur Sudo apt-get -y install Oracle-Java7-installer

Le package Oracle Java pour Ubuntu pose de manière interactive des questions sur le contrat de licence. Je dois donc dire «OK», puis «oui» à chaque fois, mais j'aimerais l'automatiser. Ce que je fais est ceci:

Sudo add-apt-repository -y ppa:webupd8team/Java
Sudo apt-get update
Sudo apt-get -y install Oracle-Java7-installer 

Existe-t-il un moyen simple d'automatiser le processus d'accord sans utiliser expect?

46
kjtanaka

essayez ceci:

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 

exécuter les 3ème et 4ème commandes sur mon debian 7.1 aide, je pense donc que la même chose peut aider sur Ubuntu

101
Maxym

Si vous utilisez Ansible pour l'automatisation, vous voudrez peut-être mettre ceci dans votre playbook:

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"

Remarque: L'argument value dans debconf doit être défini sur "true", y compris les guillemets, conformément à comment de Roy Wood .

35
schrom

ppa: linuxuprising/Java && Oracle-Java11-installer

Pour ceux qui utilisent le programme d'installation de Linux Uprising Linux 11 et qui tombent sur ça, voir ceux-ci:

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

Au lieu des commandes de la réponse (comme indiqué sur leur site), vous voulez ceci:

echo Oracle-Java11-installer shared/accepted-Oracle-license-v1-2 select true | \
Sudo /usr/bin/debconf-set-selections

Voici ma configuration Docker pour un conteneur basé sur Ubuntu 18.04:

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
0
el n00b

Si vous utilisez Chef pour provisionner vos serveurs avec Oracle Java, vous pouvez effectuer les opérations suivantes dans une ressource bash execute.

Travailler la réponse de maxym ci-dessus

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
0
messinga