Question Comment supprimer Java dans Debian?


java -version
java version "1.6.0_18"
OpenJDK Runtime Environment (IcedTea6 1.8.13) (6b18-1.8.13-0+squeeze2)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)

Il ne semble pas y avoir de moyen facile de rechercher des paquets dans apt, donc j'utilise dpkg pour rechercher des paquets liés à Java:

# dpkg --get-selections | less | grep java
ca-certificates-java            install
java-common                     install
javascript-common               install
libaccess-bridge-java           install
libaccess-bridge-java-jni       install
libdb4.7-java-gcj               deinstall
libhsqldb-java-gcj              deinstall
sun-java6-bin                   deinstall
sun-java6-jre                   deinstall
tzdata-java                     install

Je procède à la suppression de java-common, mais quand il est terminé java est toujours installé et java -version montre toujours la même chose.

Rien ne change, le paquet java-common apparaît encore dans la recherche dpkg. Qu'est-ce que je rate?

J'ai également supprimé OpenJDK, qui semblait le définir comme "désinstaller":

# dpkg --get-selections | less | grep openjdk
openjdk-6-jre                   deinstall
openjdk-6-jre-headless          install
openjdk-6-jre-lib               install

Java est toujours là.

# java -version
java version "1.6.0_18"
OpenJDK Runtime Environment (IcedTea6 1.8.13) (6b18-1.8.13-0+squeeze2)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)

4
2018-06-16 00:38


origine


Comment avez-vous retiré les paquets? Car deinstall signifie simplement qu'il est sélectionné pour la désinstallation, mais pas réellement désinstallé. - Jan Hlavacek
En outre, il y a quelque chose d'étrange dans la commande de vos pipes: avez-vous des raisons d'avoir less avant grep? - Jan Hlavacek
J'ai utilisé apt-cache remove <package> pour les supprimer et ils apparaissaient comme "deinstall" dans dpkg - je ne suis pas sûr que ce soit normal. - some1
Il y avait trop de sortie et j'ai essayé moins avant de me laisser aller. Vous avez raison, cela n'a aucun sens. - some1
Êtes-vous sûr d'avoir utilisé apt-cache? Pour autant que je sache apt-cache n'a même pas un remove commande, de toute façon, apt-cache est pour interroger le cache apt, pas pour installer et désinstaller des paquets. En utilisant apt-get remove <package>, ou apt-get purge <package> serait mieux. Moi j'utilise aptitude pour des tâches comme celle-ci, il a une interface utilisateur agréable, ou si vous voulez quelque chose avec une interface graphique, synaptic est censé être bon. - Jan Hlavacek


Réponses:


Pour moi c'était:

sudo apt-get remove openjdk-6*
sudo apt-get remove icedtea*

9
2018-01-10 02:41





Je suis tombé sur cela parce que je travaille à travers un livre d'instruction pour la programmation Android qui veut utiliser un Java SE et JRE spécifiques (8u121) et demande que tous les autres packages Java soient supprimés avant de continuer l'installation. Donc, après avoir lu les idées ci-dessus, je suis allé avec:

sudo apt-get remove openjdk*

et le résultat était:

bryan@kali:~$ java -version
bash: /usr/bin/java: No such file or directory

Donc, ce qui précède suggère qu’aucune version de Java n’est trouvée. Quel est ce que l'OP voulait faire (je pense).

Au cas où quelqu'un trouverait ce sujet parce qu'il désinstallerait Java pour pouvoir installer une ancienne version, j'ai inclus un guide que j'ai trouvé. Les deux premiers codes vous aident à l’installer si vous n’avez pas d’interface graphique. Si vous avez une archive, ignorez-les. Le dernier bloc de code contient certaines parties que vous devrez modifier si vous n'installez pas la même version.


{commence à copier / coller}

Si vous essayez d'installer Java JDK à distance et que vous n'avez absolument aucun accès à l'interface utilisateur graphique et au navigateur Web, utilisez la méthode curl suivante pour télécharger Java JDK à l'aide d'une ligne de commande.

Tout d'abord, obtenez une URL de téléchargement correcte en utilisant la commande curl:

$ curl -s http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html | grep "otn-pub" | cut -d \" -f12

La commande ci-dessus génère un tas d'URL pour votre sélection. Pour lancer le téléchargement du fichier Java souhaité, copiez son URL et démarrez le téléchargement en utilisant la commande curl tout en acceptant la licence Jave demandée. Par exemple:

$ curl -LOb "oraclelicense=a" http://download.oracle.com/otn-pub/java/jdk/8u121-b13/e9e7ea248e2c4826b92b3f075a80e441/jdk-8u121-linux-x64.tar.gz

Installer Java JDK A ce stade, nous devrions avoir une archive Java JDK appropriée dans notre répertoire de travail actuel:

$ ls
jdk-8u121-linux-x64.tar.gz

Créez un répertoire d'installation Java JDK cible:

# mkdir /opt/java-jdk

Extrayez l'archive Java JDK précédemment téléchargée:

# tar -C /opt/java-jdk -zxf jdk-8u121-linux-x64.tar.gz

Définir Oracle Java par défaut Actuellement, le système ne reconnaît pas notre installation Java JDK:

$ update-alternatives --list java
update-alternatives: error: no alternatives for java
$ java
bash: java: command not found

Utilisez la commande update-alternatives pour inclure java et javac dans l'environnement Java du système. Remplacez le chemin ci-dessous par des fichiers binaires Java, le cas échéant, pour refléter votre version Java téléchargée:

# update-alternatives --install /usr/bin/java java /opt/java-jdk/jdk1.8.0_121/bin/java 1   
update-alternatives: using /opt/java-jdk/jdk1.8.0_121/bin/java to provide /usr/bin/java (java) in auto mode
# update-alternatives --install /usr/bin/javac javac /opt/java-jdk/jdk1.8.0_121/bin/javac 1
update-alternatives: using /opt/java-jdk/jdk1.8.0_121/bin/javac to provide /usr/bin/javac (javac) in auto mode

{fin copier / coller}

Bon alors j'ai suivi que je voulais confirmer que ça marche ...

bryan@kali:~/Desktop$ java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

C'est tout! C'est ce que nous voulons.

Ensuite, je me suis inquiété de ce que 'apt update' puisse annuler ce que j'ai fait en mettant à jour le paquet (pas sûr). Alors je les mets en attente. Pour supprimer la prise: apt-mark

bryan@kali:~/Desktop$ sudo apt-mark hold openjdk-8*
openjdk-8-jre set on hold.
openjdk-8-jre-headless set on hold.
openjdk-8-doc set on hold.
openjdk-8-jdk set on hold.
openjdk-8-dbg set on hold.
openjdk-8-demo set on hold.
openjdk-8-jdk-headless set on hold.
openjdk-8-source set on hold.
openjdk-8-jre-dcevm set on hold.
openjdk-8-jre-zero set on hold.

2
2018-03-31 10:17





As-tu essayé:

  1. sudo apt-get remove '*jre*'
  2. sudo apt-get remove '*icedtea*'

Ce ne sont que des regex qui devraient correspondre à "icedtea" ou "jre" dans le nom.
J'espère que cela t'aides!


-1
2018-06-16 01:08



Je doute que cela fonctionnera, au moins quand on l'appelle depuis le shell. Le shell interprétera les astérisques comme des globes de shell et tentera de les développer. En fonction de vos paramètres, il est fort probable qu’il essaiera de les développer dans une liste de tous les fichiers du répertoire de travail contenant la chaîne. jre (ou icedtea) dans leur nom de fichier. Même s'il existe de tels fichiers, il est très improbable que leurs noms de fichiers correspondent exactement au nom des packages à supprimer. - Jan Hlavacek
@ JanHlavacek Oups. Je le réparerai. Ces commandes fonctionnent lorsqu'elles sont appelées depuis un répertoire vide! ;) - BenjiWiebe
@ JanHlavacek Ils devraient fonctionner correctement maintenant. - BenjiWiebe
Cela dépend de votre shell, et peut-être de votre configuration spécifique. Lorsque j'essaie de les exécuter depuis un répertoire vide, le shell se plaint de ne pouvoir trouver aucune correspondance et ne peut donc pas développer le glob. Un autre problème est que vous vous fiez au fait qu’il n’existe aucun autre paquetage sans aucun rapport qui ait, par hasard, la chaîne jre en son nom Bien que cela semble être le cas dans les dépôts Debian actuels, ce n'est peut-être pas la meilleure idée de s'y fier, dans le cas où quelqu'un emballe le programme (fictif). jrecode qui convertit entre différents jeux de caractères japonais. - Jan Hlavacek
Je veux dire les originaux. Les cités travaillent, mais voient encore mon autre point. - Jan Hlavacek