Installer Java automatiquement (avec option silencieuse)

99

J'essaie d'installer Java via apt-get.

J'ai trouvé cet PPA de Java Installers , cependant, lorsque j'ajoute le référentiel, mettez à jour puis émettez le Commande apt-get install -y, le programme d'installation de Java prend le relais et affiche une option de configuration.

J'espère pouvoir l'installer sans aucune intervention ou pression sur les claviers depuis que je crée des scripts de génération et de déploiement pour mes instances EC2, ce qui installera automatiquement tous les paquets balisés dont il a besoin.

Y a-t-il d'autres options?

    
posée Layke 19.09.2012 - 16:38
la source

7 réponses

139

Si OpenJDK / OpenJRE fonctionne bien pour vous, je vous recommande d’utiliser ce paquet comme suggéré par @SAM. Cependant, certains logiciels nécessitent vraiment Oracle JDK / JRE. Cette réponse explique comment faire taire la question de la licence avec le package Oracle du PPA.

D'abord, reconnaissons la question posée est une fonctionnalité du package, créée par le développeur.

oracle-java7-installer (7u7-0~webupd8~4) maverick; urgency=medium

  * removed cookie file use or else the PPA stays disabled
  * request the user to accept the Oracle license before installation
 -- Alin Andrei <[email protected]>   Tue, 04 Sep 2012 14:18:29 +0200

Comme l'a indiqué @Nate dans sa réponse, il devrait y avoir une option silencieuse. Et voici. Faites-le avant de l'installer:

$ 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

Cela définit la valeur de la clé debconf sur true, mais la marque également comme vue par l'utilisateur. Maintenant, cette question ne devrait pas apparaître!

Comment j'ai trouvé ça?

Dans la source du paquet, je l’ai suivi dans le fichier oracle-java7-installer.preinst :

license=oracle-license-v1-1

# snip

db_get shared/accepted-$license
if [ "$RET" = "true" ]; then
    echo "$license license has already been accepted" >&2
    exit 0
fi

Apparemment, il utilise la valeur de debconf pour la clé shared/accepted-oracle-license-v1-1 pour vérifier si l'utilisateur a déjà accepté la licence. Si c'est le cas, le script se terminera avec élégance et permettra à l'installation de continuer sans vous poser la question. Nous devons maintenant dire à debconf que vous acceptez déjà la licence Oracle 1.1.

Veuillez vous reporter à la page de manuel de debconf-set-selections pour plus de détails, mais il s'agit de l'exemple de votre problème et fonctionne de la même manière pour les autres packages. Quelles autres clés avez-vous sur votre système dans la base de données de debconf? Installez debconf-utils et faites

$ sudo debconf-get-selections

Ensuite, grep pour plus de clés que vous devez définir dans votre installation automatisée. C'est beaucoup plus flexible que d'utiliser -y avec apt-get car cela vous donne la possibilité de définir des paramètres autres que ceux par défaut lors de l'installation.

    
réponse donnée gertvdijk 19.09.2012 - 21:45
la source
52

Installation silencieuse de Java 6/7/8/9 à l'aide de PPA de l'équipe WebUpd8

sudo apt-get install -y python-software-properties debconf-utils
sudo add-apt-repository -y ppa:webupd8team/java
sudo apt-get update
echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 select true" | sudo debconf-set-selections
sudo apt-get install -y oracle-java8-installer

La réponse de @gertvdijk n'a pas fonctionné avec moi sur Ubuntu 14.04 & amp; 14.10

    
réponse donnée Rahul Thakur 17.06.2015 - 10:51
la source
13

Supporter @gertvdijk réponse est la description dans article de blog original sur le PPA de webupd8.

  

Mise à jour 2: le programme d’installation requiert désormais l’acceptation de la licence Oracle   avant que l'installation ne commence. Ceci n'est nécessaire qu'une fois. Si pour   une raison quelconque, vous avez besoin de l'installation pour être automatisé, vous pouvez exécuter le   commande suivante pour accepter automatiquement la licence Oracle:

sudo echo oracle-java7-installer shared/accepted-oracle-license-v1-1 select true | \
sudo /usr/bin/debconf-set-selections
    
réponse donnée Hosam Aly 17.06.2013 - 11:28
la source
10

J'ai vérifié le travail de phrase suivant pour moi en utilisant docker ubuntu16.04LTS.

RUN apt-get install -y software-properties-common
RUN add-apt-repository ppa:webupd8team/java && apt-get update

RUN echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 select true" | debconf-set-selections
RUN echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 seen true" | debconf-set-selections

RUN apt-get install -y oracle-java8-installer
    
réponse donnée keniee van 08.08.2016 - 03:09
la source
2

Pour une installation silencieuse Java, vous pouvez essayer open-jdk:

  

sudo apt-get install -y openjdk-7-jdk

Essayez aussi ceci pour plus de paquets / extensions open-jdk ...

  

sudo apt-cache search openjdk

    
réponse donnée Sam 19.09.2012 - 16:43
la source
1

Oracle java n’est plus dans les dépôts Ubuntu. lien

Voici comment installer le JDK Java. Comment installer Oracle Java JDK 7?

Il devrait y avoir une option silencieuse.

    
réponse donnée Nate 19.09.2012 - 16:48
la source
0

Ceci est un extrait du fichier Dockerfile que j'ai utilisé pour construire avec succès une image de docker basée sur Debian:

( Référence )

RUN apt-get update \
    && apt-get upgrade \
    && apt-get install -y gnupg

RUN echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | tee /etc/apt/sources.list.d/webupd8team-java.list
RUN echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886
RUN apt-get update
RUN echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 select true" | sudo debconf-set-selections
RUN apt-get install -y oracle-java8-installer \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/* \
    && R CMD javareconf
    
réponse donnée SteoG5972 12.07.2018 - 14:10
la source

Lire d'autres questions sur les étiquettes