104 votes

Installation automatique de Java (avec l'option silencieuse)

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

J'ai trouvé ceci PPA d'installateurs Java Cependant, lorsque j'ajoute le dépôt, que je mets à jour et que je 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 puisque je crée des scripts de construction et de déploiement pour mes instances EC2 qui installeront automatiquement tous les paquets marqués dont il a besoin.

Y a-t-il d'autres options ?

147voto

RN. Points 559

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

Tout d'abord, reconnaissons que la question posée est une fonctionnalité du paquet, 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 @Nate l'a indiqué dans sa réponse, il devrait y avoir une option silencieuse. Et il y en a une. 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

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

Comment ai-je trouvé ça ?

Dans la source du paquet, j'ai trouvé cela dans le fichier 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 quittera gracieusement et permettra à l'installation de continuer sans vous poser la question. Nous devrions maintenant simplement dire à debconf que vous acceptez déjà la licence Oracle 1.1.

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

$ sudo debconf-get-selections

Ensuite, recherchez d'autres clés que vous devez définir dans votre installation automatique. C'est beaucoup plus flexible que d'utiliser -y con apt-get car il vous donne la possibilité de définir des paramètres autres que ceux par défaut lors des installations.

56voto

Rahul Thakur Points 661

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

La réponse de @gertvdijk ne fonctionne pas avec moi sur Ubuntu 14.04 et 14.10.

13voto

wxs Points 1546

Soutenir @gertvdijk réponse est la description dans le article de blog original à propos du PPA de webupd8.

Mise à jour 2 : le programme d'installation vous demande maintenant d'accepter la licence Oracle avant que l'installation ne commence. Cette demande n'est requise qu'une seule fois. Si pour raison, vous avez besoin que l'installation soit automatisée, vous pouvez exécuter la commande 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

11voto

keniee van Points 211

J'ai vérifié que la phrase suivante fonctionne 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

2voto

Sam Points 999

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X