Compréhension d'update-alternatives

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/

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

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

http://www.delafond.org/traducmanfr/mdk/man8/update-alternatives.8.html

Pour faciliter la tâche il existe un outil graphique

https://packages.debian.org/stretch/galternatives