# Compréhension d'update-alternatives

**URL:** <https://www.debian-fr.org/t/comprehension-dupdate-alternatives/76078>\
**Category:** Programmation\
**Created:** [Mars 6, 2018, 12:23 UTC](https://www.debian-fr.org/t/comprehension-dupdate-alternatives/76078 "2018-03-06T12:23:11Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![FastNugget](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/b4bc9f/32.png) [@FastNugget](https://www.debian-fr.org/u/FastNugget)\
**Post date:** [Mars 6, 2018, 12:23 UTC](https://www.debian-fr.org/t/comprehension-dupdate-alternatives/76078/1 "2018-03-06T12:23:11Z")

</div>

Bonjour,

étant en plein apprentissage du système linux debian, j’aimerais en comprendre différents aspects, notamment celui d’update-alternatives, que je veux utiliser ici pour changer mon jdk.

Voici l’exemple tiré du site: [http://www.barreverte.fr/ubutu-update-alternatives-java14/](http://www.barreverte.fr/ubutu-update-alternatives-java14/)

**Voici la partie concerné:**

**Avant la modification :**

$ sudo update-alternatives --list java  
/usr/lib/jvm/java-1.5.0-sun/jre/bin/java  
/usr/lib/jvm/java-6-sun/jre/bin/java

**Rendez-vous dans le répertoire bin de votre JDK (/opt/j2sdk1.4.2\_18 chez moi) et lancez-vous :**

sudo update-alternatives --verbose --install /usr/bin/java java  
/opt/j2sdk1.4.2\_18/bin/java 500 --slave /usr/share/man/man1/java.1 java.1  
/opt/j2sdk1.4.2\_18/man/man1/java.1  
`for prog in *; do echo --slave /usr/bin/$prog $prog /opt/j2sdk1.4.2_18/bin/$prog; done | grep -v "java " | xargs`

**Plusieurs questions se posent:**

**\_ Dans la deuxieme partie, le développeur marque " update-alternatives --verbose --install /usr/bin/java java"**

–\> la présence de java suite à un espace blanc signifie qu’il initialise une nouvelle installation d’alternative java ? Que signifie le sens de cette directive ?

\_ **Toujours dans la deuxième partie, le développeur écris " /opt/j2sdk1.4.2\_18/bin/java 500 --slave /usr/share/man/man1/java.1 java.1 "**

–\> Pourquoi écris-t-il 500 ? Est-ce par rapport à la priorité ?

Pourquoi mettre --slave à ce moment là ? Puis ensuite man1/java.1 espace blanc java.1 ?

Chez moi ce dossier est un lien symbolique pour /etc/alternatives/java.1.gz donc à quoi tout cela peut-il bien correspondre ?

\_ **Puis vient** for prog in \*; do echo --slave /usr/bin/$prog $prog  
/opt/j2sdk1.4.2\_18/bin/$prog; done | grep -v "java " | xargs`

`for prog in \*; --\> ouverture avec le symbole apostrophe suivit de for prog in et fermetre par ;  
Notre shell for est-il donc enclosé entre l’apostrophe et ; au lieu de () ?

\_ **Puis enfin** /opt/j2sdk1.4.2\_18/bin/$prog; done | grep -v "java " | xargs

Pourquoi le $prog ? et que signifie le xargs sans aucun paramètre à la fin ?  
Est-ce pour faire une sorte de récursion ?

**Je suis conscient du nombre important de questions posées ici et remercie d’avance ceux qui prendront la peine de me répondre.**

Amicalement

FastNugget

---

<div class="post-metadata">

**Author:** ![grandtoubab](https://www.debian-fr.org/user_avatar/www.debian-fr.org/grandtoubab/32/4505_2.png) [@grandtoubab](https://www.debian-fr.org/u/grandtoubab)\
**Post date:** [Mars 6, 2018, 1:17 UTC](https://www.debian-fr.org/t/comprehension-dupdate-alternatives/76078/2 "2018-03-06T13:17:41Z")

</div>

Salut  
avant de copier/coller des commandes, surtout a travers un script shell il est bon de consulter le manuel

> **[Manpage of UPDATE-ALTERNATIVES](http://www.delafond.org/traducmanfr/mdk/man8/update-alternatives.8.html)**

Pour faciliter la tâche il existe un outil graphique

> **[Debian -- Error](https://packages.debian.org/stretch/galternatives)**

[![](https://www.debian-fr.org/uploads/default/original/2X/f/fa66191ac02b2130add711860ddb6a3609720c4c.png)](http://pix.toile-libre.org/?img=1520342348.png)
