Question Installation automatique de Java (avec option silencieuse)


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

j'ai trouvé ça PPA de Java InstallersCependant, lorsque j'ajoute le référentiel, mets-le à jour et lance la 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 construction et de déploiement pour mes instances EC2, ce qui installera automatiquement tous les paquets balisés dont il a besoin.

Y at-il d'autres options?


99
2017-09-19 14:38


origine




Réponses:


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 réduire au silence la question de licence avec le package Oracle de la PPA.

Tout d'abord, reconnaissons la question posée est un fonctionnalité du package, créé 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 <webupd8@gmail.com>   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 oracle-java7-installer.preinst fichier:

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.

S'il vous plaît se référer à la page de manuel de debconf-set-selections sur plus de détails, mais ceci est l'exemple de votre problème et fonctionne de manière similaire pour les autres packages. Quelles autres clés avez-vous sur votre système dans la base de données de debconf? Installer debconf-utils et fait

$ sudo debconf-get-selections

Ensuite, installez 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.


140
2017-09-19 19:45



Réponse fantastique :) - Layke
Réponse géniale Fonctionne à partir d'un script shell aussi. - Derek
Fonctionne également pour Java 8. - jameshfisher
Aucun devis n'est requis pour l'écho des commandes d'acceptation de licence? - David
@David Pas pour ce cas; si vous les ajoutez la sortie de echo serait exactement la même chose. - gertvdijk


Installation silencieuse de Java 6/7/8/9 en utilisant 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

@gertvdijk réponse n'a pas fonctionné avec moi sur Ubuntu 14.04 et 14.10


52
2018-06-17 08:51



fonctionne bien le 16.04 - pneumatics
Cela ne fonctionne plus - Ahmed Mostafa
@AhmedMostafa Pouvez-vous faire savoir aux autres où vous avez essayé cela? - Rahul Thakur
Fonctionne pour oracle-java9-installer aussi. - Kohányi Róbert
ce travail parfait avec l'image basée sur google / cloud-sdk - Xin Meng


Soutenir @gertvdijk répondre est la description dans le billet de blog original sur le PPA de webupd8.

Mise à jour 2: le programme d'installation nécessite maintenant que vous acceptiez 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

13
2018-06-17 09:28



C'est la ligne magique dont j'avais besoin pour mon installation silencieuse d'Oracle Java - merci @Hosam - Phantomwhale
Vous êtes les bienvenus @Phantomwhale - Hosam Aly
Est-ce que je me trompe, ou y a-t-il un caractère manquant / supplémentaire dans votre réponse? - David
Tu as raison @David. Merci! - Hosam Aly


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

11
2017-08-08 01:09



Je l'ai essayé et ça ne marche pas. - Ahmed Mostafa
Confirmé de travailler pour moi sur docker-ce 18.05 sur Kubuntu 18.04: D installer dans un i386/ubuntu:18.04 récipient. - BeepDog


Pour un silencieux java installer 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 recherche openjdk


2
2017-09-19 14:43



Cette solution a bien fonctionné. sudo apt-get install -y openjdk-7-jdk - Layke


Oracle java n'est plus dans les repos Ubuntu. http://www.omgubuntu.co.uk/2011/12/java-to-be-removed-from-ubuntu-uninstalled-from-user-machines

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

Il devrait y avoir une option silencieuse.


1
2017-09-19 14:48





Ceci est un extrait du fichier Dockerfile que j'ai utilisé pour créer 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

0
2017-07-12 12:10