51 votes

Comment désinstaller OpenJDK ?

Je ne veux pas OpenJDK installé sur mon système Ubuntu 13.04, mais en essayant de désinstaller l'application openjdk-7-jre donne le message suivant :

$ sudo apt-get purge openjdk-7-jre
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  gcj-4.7-base gcj-4.7-jre gcj-4.7-jre-headless gcj-4.7-jre-lib gcj-jre gcj-jre-headless icedtea-6-jre-cacao icedtea-6-jre-jamvm libgcj-common libgcj13 libgcj13-awt
  openjdk-6-jre-headless openjdk-6-jre-lib
Suggested packages:
  fastjar gcj-4.7-jdk gcj-jdk libgcj13-dbg sun-java6-fonts fonts-ipafont-gothic fonts-ipafont-mincho ttf-telugu-fonts ttf-oriya-fonts ttf-kannada-fonts
  ttf-bengali-fonts
The following packages will be REMOVED:
  default-jre* icedtea-7-plugin* icedtea-netx* icedtea-plugin* libatk-wrapper-java* libatk-wrapper-java-jni* openjdk-7-jre*
The following NEW packages will be installed:
  gcj-4.7-base gcj-4.7-jre gcj-4.7-jre-headless gcj-4.7-jre-lib gcj-jre gcj-jre-headless icedtea-6-jre-cacao icedtea-6-jre-jamvm libgcj-common libgcj13 libgcj13-awt
  openjdk-6-jre-headless openjdk-6-jre-lib
0 upgraded, 13 newly installed, 7 to remove and 4 not upgraded.
Need to get 57,0 MB/57,2 MB of archives.
After this operation, 156 MB of additional disk space will be used.
Do you want to continue [Y/n]?

Que dois-je faire pour qu'aucun nouveau paquet, dont je n'ai pas besoin, ne soit installé lors de la suppression de openjdk-7 ?

85voto

Zaid Khan Points 1

Excellente question, je me la posais moi-même.

J'ai découvert que vous pouvez utiliser ce qui suit pour supprimer openjdk-7-jre sur Ubuntu 13.04 :

sudo apt-get autoremove openjdk-7-jre

Appuyez sur "y", puis sur "enter" lorsque vous êtes invité à confirmer cette modification. Cela devrait également nettoyer toutes les bibliothèques de dépendances supplémentaires qui ont été installées avec le logiciel.

J'ai également découvert qu'il était possible d'utiliser la commande suivante pour effectuer un nettoyage supplémentaire :

sudo apt-get purge openjdk*

Si vous utilisez la commande suivante :

java -version

Vous ne devriez plus voir l'installation de openjdk-7-jre !

J'espère que cela vous aidera. :)

39voto

Radu Rădeanu Points 156862

Vous pouvez utiliser la commande suivante :

sudo apt-get purge openjdk-8-jre openjdk-8-jre-headless openjdk-7-jre gcj-4.7-base gcj-4.7-jre openjdk-6-jre-headless

De cette manière, aucun nouveau paquet ne sera installé. Voici le résultat de la commande ci-dessus :

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package 'gcj-4.7-base' is not installed, so not removed
Package 'gcj-4.7-jre' is not installed, so not removed
Package 'openjdk-6-jre-headless' is not installed, so not removed
The following packages will be REMOVED:
  default-jre* icedtea-7-plugin* icedtea-netx* libatk-wrapper-java*
  libatk-wrapper-java-jni* libreoffice-base* minecraft-installer*
  openjdk-7-jre*
0 upgraded, 0 newly installed, 8 to remove and 6 not upgraded.
After this operation, 10,3 MB disk space will be freed.
Do you want to continue [Y/n]? n

Mais je ne vous conseille pas de le faire. En un jour, vous aurez certainement besoin d'un OpenJDK (6 ou 7).

5voto

kiri Points 25860

Pourquoi cela se produit-il ?

Cela se produit probablement parce qu'un autre paquetage sur votre système dépend de Java. En supprimant openjdk-7-jre , apt-get constate que s'il désinstalle OpenJDK, certains paquets auront des dépendances non satisfaites. Pour résoudre ce problème, il installe un autre paquet qui fournit Java.

Pour trouver la cause de ce problème, exécutez les commandes suivantes dans un terminal :

packages=(default-jre default-jre-headless icedtea-6-plugin icedtea-7-plugin java-compiler java-jdk java-runtime java-runtime-headless java-sdk java-virtual-machine java2-jdk java2-runtime java2-runtime-headless java2-sdk java5-jdk java5-runtime java5-runtime-headless java5-sdk java6-jdk java6-runtime java6-runtime-headless java6-sdk java7-jdk java7-runtime java7-runtime-headless java7-sdk openjdk-6-jdk openjdk-6-jre openjdk-6-jre-headless openjdk-7-jdk openjdk-7-jre openjdk-7-jre-headless oracle-java7-bin oracle-java7-fonts oracle-java7-jdk oracle-java7-jre oracle-java7-plugin sun-java6-bin sun-java6-fonts sun-java6-jdk sun-java6-jre sun-java6-plugin)
for pkg in "${packages[@]}"; do
    apt_cache_out="$(apt-cache --installed rdepends "$pkg" | grep -E '^ [| ]\S')"
    if (( $? == 0 )); then
        echo -----------------------
        echo "$pkg"
        echo "$apt_cache_out"
    fi
done

Exemple de sortie (abrégé) :

-----------------------
openjdk-7-jre
 |libreoffice-filter-mobiledev
 |libreoffice
 |libreoffice-writer
 |libreoffice-base
 |libreoffice-filter-mobiledev
 |libreoffice
 |libreoffice-writer
 |libreoffice-base

Cela indique que tous les paquets LibreOffice dépendent de openjdk-7-jre . Tant que ces paquets sont installés, OpenJDK ne peut pas être désinstallé sans installer automatiquement un autre Java.

Pour supprimer openjdk-7-jre

Si vous souhaitez supprimer openjdk-7-jre (sans installer d'autres paquets), vous devrez d'abord désinstaller tous les paquets qui en dépendent.

D'après l'exemple de sortie, il s'agira de

sudo apt-get remove oracle-java7-installer libreoffice-filter-mobiledev libreoffice libreoffice-writer libreoffice-base libreoffice-filter-mobiledev libreoffice libreoffice-writer libreoffice-base

5voto

Pour désinstaller OpenJDK, vous devez exécuter les commandes suivantes dans votre terminal. Vous pouvez accéder au terminal en utilisant ces touches, ctrl + shift + enter .

Supprimer uniquement Openjdk :

$ sudo apt-get remove openjdk*

Supprimer Openjdk et ses dépendances :

$ sudo apt-get remove --auto-remove openjdk*

Supprimer Openjdk et ses fichiers de configuration :

$ sudo apt-get purge openjdk*

Supprimez Openjdk ainsi que ses dépendances et ses fichiers de configuration :

$ sudo apt-get purge --auto-remove openjdk*

3voto

pjhobbs Points 73

Je remarque que vous avez dit vouloir utiliser le JDK d'Oracle. Si vous voulez installer le JDK d'Oracle à la place, vous pouvez le télécharger et l'extraire à l'endroit de votre choix.

Il suffit ensuite d'utiliser update-alternatives pour indiquer à votre système où Java est installé. Si vous n'êtes pas sûr de la syntaxe de update-alternatives, vous pouvez utiliser son interface, galternatives.

Par exemple... J'utilise beaucoup le JDK d'Oracle.

Je l'extrais dans /opt/java/.

Ensuite, pour que tous les binaires d'Oracle Java soient les principaux utilitaires pour les choses liées à Java, je fais ce qui suit avec update-alternatives :

for j in `ls /opt/java/bin` ; do update-alternatives --install /usr/bin/"$j" "$j" /opt/java/bin/"$j" 1 ; done

Cela prend tous les utilitaires Oracle Java que vous avez précédemment extraits, et et leur donne la priorité, au cas où d'autres versions de Java seraient installées. (Ubuntu permet d'installer plusieurs versions d'un même utilitaire).

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