Comment désinstaller OpenJDK?

39

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

Fynn
la source

Réponses:

30

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).

Radu Rădeanu
la source
4
Si j'ai vraiment besoin d'un JDK, je préférerais utiliser le JDK d'Oracle au lieu d'OpenJDK.
Fynn
Cela n'a pas fonctionné pour moi.
jgomo3
@ radu-rdeanu Pour ce faire, je devais installer gcj auparavant. Quand j'ai essayé votre solution, apt s'est plaint que gcj n'était pas installé. J'ai installé gcj et supprimé tous les paquets que vous avez mentionnés. Mais après cela, la commande java était toujours là. Donc, je dois avoir un environnement câblé.
jgomo3
@ jgomo3 Comme vous pouvez le constater dans mon texte, cela ne m'est pas arrivé. De quelle version gcjparlez-vous?
Radu Rădeanu
66

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. :)

Raouf Aghrout
la source
2
@ jgomo3 Est-ce que cette réponse vous aide? Surtout le sudo apt-get remove --purge openjdk*bit?
Landroni
1
@landroni je dois le tester. Afin de faire la solution radu-rdeanu, je devais installer gcj avant. De cette façon, je pourrais "l'enlever". Je vais essayer cette solution d’abord en désinstallant Oracle Java, en deuxième lieu en ouvrant openjdk et le reste, puis en le "retirant automatiquement".
jgomo3
Faites-moi savoir comment vous vous en sortez, rappelez-vous que si vous utilisez, autoremovevous devez spécifier la version correcte de l'openjdk, vous utilisez peut-être openjdk-6-jre. En outre, il convient de noter que si vous exécutez plusieurs versions de openjdk, la purgecommande en supprimera toute trace. Soyez donc prudent lorsque vous utilisez cette option, en fonction de ce que vous souhaitez faire.
Raouf Aghrout
2
sudo apt-get purge openjdk*Cela a fonctionné pour moi, mais il a également désinstallé mon installation de Jenkins (qui dépend du paquet openjdk 7) :(
RobertG
1
la première option a supprimé 7 mais en a installé 6, la seconde a fonctionné: sudo apt-get purge openjdk *
Pablo Pazos
4

Pourquoi cela se produit

Cela se produit probablement car un autre package sur votre système dépend de Java. Lors de la suppression openjdk-7-jre, on apt-gets’aperçoit que s’il désinstalle OpenJDK, certains paquets 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.

Ôter 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
kiri
la source
3

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 extraits précédemment et leur donne la priorité, au cas où d’autres versions de Java seraient installées. (Ubuntu vous permettant d'installer plusieurs versions du même utilitaire)

longviewbits
la source
1

Avec le reste des réponses, avez-vous vérifié votre .bashrcfichier 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.

Faron
la source
0

Pour désinstaller OpenJDK, vous devez exécuter ces commandes dans votre terminal. Vous pouvez obtenir le terminal en utilisant ces touches, ctrl+ shift+ enter.

Supprimer Openjdk uniquement:

$ sudo apt-get remove openjdk*

Supprimer Openjdk avec les dépendances:

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

Supprimez Openjdk et ses fichiers de configuration:

$ sudo apt-get purge openjdk*

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

$ sudo apt-get purge --auto-remove openjdk*
Janaka Pushpakumara
la source