web-dev-qa-db-fra.com

Comment désinstaller OpenJDK?

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

36
Fynn

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 faire cela. En un jour, vous aurez besoin d'un OpenJDK (6 ou 7).

28
Radu Rădeanu

Excellente question, je me demandais cela moi-même.

J'ai trouvé que vous pouvez utiliser ce qui suit pour supprimer l'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 l’openjdk-7-jre installé!

J'espère que cela t'aides. :)

63
Raouf Aghrout

Pourquoi cela se produit

Cela est probablement dû au fait qu'un autre package sur 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 savoir ce qui cause 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 packages sont installés, OpenJDK ne peut pas être désinstallé sans l'installation automatique d'un autre fichier Java.

Pour supprimer openjdk-7-jre

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

À partir de 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
4
kiri

Je remarque que vous avez dit que vous vouliez utiliser le JDK d’Oracle. Si vous souhaitez plutôt 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 l'interface frontale pour cela, galternatives.

Par exemple ... J'utilise assez souvent le JDK d'Oracle ici.

Je l'extrais dans/opt/Java /.

Ensuite, tous les fichiers binaires d'Oracle Java sont les principaux utilitaires pour les éléments liés à Java. Je procède comme 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ù vous auriez d'autres versions de Java installées. (Ubuntu vous permettant d'installer plusieurs versions du même utilitaire)

3
longviewbits

Avec le reste des réponses, avez-vous vérifié votre fichier .bashrc pour vous assurer que l'environnement Java_HOME n'est pas là? Supprimer cette ligne devrait permettre de libérer votre Ubuntu d’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, alors supprimez ces deux lignes et redémarrez.

1
Faron