2013-10-09 8 views
41

Il pacchetto Oracle Java per Ubuntu richiede in modo interattivo il Contratto di licenza. Quindi devo dire "OK" e poi "Sì" ogni volta, ma mi piacerebbe automatizzarlo. Quello che faccio è questo:Auto sì al Contratto di licenza su sudo apt-get -y install oracle-java7-installer

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

C'è un modo semplice per automatizzare il processo di accordo senza l'utilizzo previsto?

+0

Dal momento che stai chiedendo circa l'uso del * Ubuntu/Debian * gestore di pacchetti, la sua domanda sarebbe meglio stare su [* Chiedi Ubuntu *] (http: // askubuntu.com/about) o [* Unix & Linux Stack Exchange *] (http://unix.stackexchange.com/). – zakinster

+0

Lo farà. Grazie per il suggerimento. – kjtanaka

+0

Su askubuntu: http://askubuntu.com/questions/190582/installing-java-automatically-with-silent-option –

risposta

96

provare questo fuori:

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 

esecuzione 3 ° e 4 ° comando sulla mia debian 7.1 aiuta, quindi penso che lo stesso si può aiutare su ubuntu così

+0

Funziona bene. Molte grazie! – kjtanaka

+0

@KJTanaka: sei il benvenuto! per favore considera di accettarlo come soluzione quindi;) o chiedere maggiori dettagli se non risolve il tuo intero problema. grazie – Maxym

+0

Una parte di esso è documentata online su [add-apt-repository] di Ubuntu (http://manpages.ubuntu.com/manpages/trusty/man1/add-apt-repository.1.html), [apt-get] (http://manpages.ubuntu.com/manpages/lucid/man8/apt-get.8.html) e [debconf] (http://manpages.ubuntu.com/manpages/hardy/man7/debconf-devel. 7.html) manuali. Puoi anche usare la riga di comando per ottenere i dettagli. –

31

Se si utilizza Ansible per l'automazione si può vuole mettere questo nella vostra 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" 

Nota: L'argomento value in debconf deve essere impostato su "true", comprese le virgolette, come da comment entro il Roy Wood.

+1

Bello! Grazie! – cadavre

+2

funziona anche con oracle-java8-installer usando '' '- name: accetta la licenza oracle debconf: name = 'oracle-java8-installer' question = 'shared/accepted-oracle-license-v1-1' value = ' true 'vtype =' select'''' – DoRivard

+3

Nota che è fondamentale utilizzare le virgolette sul valore di debconf! Se si utilizza solo "value: true" nel proprio playbook, il valore nel database debconf viene impostato su "True" e l'installazione invisibile non riuscirà con il solito avviso di "impossibile presentare la licenza di oracle-license-v1-1 ". Devi specificare "value: 'true'" nel playbook per assicurarti che l'impostazione debconf sia impostata su 'true', che è la stringa esatta che l'installer Oracle cerca! –

0

Se si utilizza Chef per il provisioning dei server con Oracle Java, è possibile eseguire quanto segue in una risorsa di esecuzione di bash.

Lavorare fuori maxym's risposta di cui sopra

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 
Problemi correlati