Comment désinstaller OpenJDK?

33

Je ne veux pas que OpenJDK soit installé sur mon système Ubuntu 13.04, mais essayer de désinstaller 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’en ai besoin, ne soit installé lors de la suppression de openjdk-7 ?

    
posée Fynn 21.08.2013 - 18:38
la source

5 réponses

24

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 façon, aucun nouveau paquet ne sera installé. Voici ma sortie pour 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 suggère pas de le faire. En un jour, vous aurez besoin d'un OpenJDK (6 ou 7).

    
réponse donnée Radu Rădeanu 21.08.2013 - 19:22
la source
51

Bonne question, je me le demandais moi-même.

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

sudo apt-get autoremove openjdk-7-jre

Appuyez sur «y», puis appuyez sur Entrée lorsque vous êtes invité à confirmer ce changement. Cela devrait également nettoyer toutes les bibliothèques de dépendances supplémentaires installées avec elle.

J'ai également constaté que vous pouvez 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 openjdk-7-jre installé!

J'espère que ça aide. :)

    
réponse donnée Raouf Aghrout 21.11.2013 - 12:00
la source
3

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

Ensuite, vous utilisez simplement 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 le front-end, galternatives.

Par exemple ... J'utilise largement le JDK d'Oracle ici.

Je l’extrais à / opt / java /.

Ensuite, tous les fichiers binaires d’Oracle Java sont les principaux utilitaires pour les applications liées à Java, et 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 leur donne la priorité, au cas où d'autres versions de Java seraient installées. (puisque Ubuntu vous permet d’avoir plusieurs versions du même utilitaire)

    
réponse donnée longviewbits 13.01.2014 - 15:33
la source
3

Pourquoi cela se produit

Cela se produit probablement car un autre package de votre système dépend de Java. Lors de la suppression de openjdk-7-jre , apt-get voit que s'il désinstalle OpenJDK, certains packages auront des dépendances non satisfaites. Pour résoudre ce problème, il installe un autre package fournissant Java.

Pour découvrir ce qui provoque cela, exécutez ces commandes 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 (raccourci):

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

Cela indique que tous les packages LibreOffice dépendent de openjdk-7-jre . Tant que ces paquetages 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 packages), vous devrez désinstaller tous les packages qui en dépendent d’abord.

Dans l'exemple de sortie, ce sera:

sudo apt-get remove oracle-java7-installer libreoffice-filter-mobiledev libreoffice libreoffice-writer libreoffice-base libreoffice-filter-mobiledev libreoffice libreoffice-writer libreoffice-base
    
réponse donnée kiri 17.01.2014 - 22:31
la source
1

Avec le reste des réponses - avez-vous vérifié votre fichier .bashrc pour vous assurer que l'environnement JAVA_HOME n'est pas présent? Supprimer cette ligne devrait faire l'affaire en libérant votre Ubuntu de openjdk. Comme un exemple:

 JAVA_HOME=/usr/local/java/jdk1.7.0_45
 export PATH=$JAVA_HOME:$PATH

Si vous voyez quelque chose comme ça, supprimez ces deux lignes et redémarrez.

    
réponse donnée Faron 11.01.2014 - 20:53
la source

Lire d'autres questions sur les étiquettes