Come disinstallare OpenJDK?


39

Non voglio OpenJDKinstallarlo sul mio sistema Ubuntu 13.04, ma provando a disinstallare si openjdk-7-jreottiene il seguente messaggio:

$ 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]?

Cosa devo fare per non installare nuovi pacchetti, di cui non ho bisogno, durante la rimozione openjdk-7?


Risposte:


30

Puoi usare il seguente comando:

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

In questo modo non verranno installati nuovi pacchetti. Ecco il mio output per il comando sopra:

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

Ma non ti consiglio di farlo. In un giorno avrai sicuramente bisogno di un OpenJDK (6 o 7).


4
Se ho davvero bisogno di un JDK, preferirei usare il JDK di Oracle invece di OpenJDK.
Fynn,

Questo non ha funzionato per me.
jgomo3,

@ radu-rdeanu Per fare questo, ho dovuto installare gcj prima. Quando ho provato la tua soluzione, apt si è lamentato che gcj non era installato. Ho installato gcj e rimosso tutti i pacchetti che hai detto. Ma dopo ciò, il comando java era ancora lì. Quindi devo avere un ambiente cablato.
jgomo3,

@ jgomo3 Come puoi vedere dalla mia uscita, questa cosa non è successa per me. Di quale versione gcjparli?
Radu Rădeanu,

66

Ottima domanda, me lo stavo chiedendo da solo.

Ho scoperto che è possibile utilizzare quanto segue per rimuovere openjdk-7-jre su Ubuntu 13.04:

sudo apt-get autoremove openjdk-7-jre

Premere 'y', quindi premere Invio quando viene richiesto di confermare questa modifica. Questo dovrebbe anche ripulire tutte le librerie di dipendenza aggiuntive che sono state installate con esso.

Ho anche scoperto che puoi usare il seguente comando per eseguire ulteriori pulizie:

sudo apt-get purge openjdk*

Se si utilizza il seguente comando:

java -version

Non dovresti più vedere openjdk-7-jre installato!

Spero che sia di aiuto. :)


2
@ jgomo3 Questa risposta ti aiuta? Soprattutto il sudo apt-get remove --purge openjdk*po '?
Landroni,

1
@landroni devo provarlo. Per fare la soluzione radu-rdeanu, prima dovevo installare gcj. In questo modo ho potuto "rimuoverlo". Proverò questa soluzione prima disinstallando Oracle Java, poi installando openjdk e altro, e infine "rimuovendola".
jgomo3,

Fammi sapere come vai avanti, ricorda se stai usando autoremovedevi specificare la versione corretta di openjdk, potresti eseguire openjdk-6-jre. Inoltre, vale la pena notare che se si eseguono più versioni di openjdk, il purgecomando rimuoverà tutte le loro tracce, quindi fare attenzione a usarlo a seconda di ciò che si desidera fare.
Raouf Aghrout,

2
sudo apt-get purge openjdk*Ha funzionato per me, ma ha anche disinstallato la mia installazione di Jenkins (che dipende dal pacchetto openjdk 7) :(
RobertG

1
la prima opzione rimosse 7 ma ne installò 6, la seconda funzionò: sudo apt-get purge openjdk *
Pablo Pazos

4

Perché questo succede

Ciò accade probabilmente perché un altro pacchetto sul tuo sistema dipende da Java. Durante la rimozione openjdk-7-jre, apt-getvede che se disinstalla OpenJDK, alcuni pacchetti avranno dipendenze non soddisfatte. Per risolvere questo, installa un altro pacchetto che fornisce Java.

Per scoprire cosa sta causando questo, eseguire questi comandi in un terminale:

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

Esempio di output (abbreviato):

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

Questo indica che tutti i pacchetti di LibreOffice dipendono da openjdk-7-jre. Finché questi pacchetti sono installati, OpenJDK non può essere disinstallato senza installare automaticamente un Java alternativo.

Rimuovere openjdk-7-jre

Se si desidera rimuovere openjdk-7-jre(senza installare altri pacchetti), sarà necessario disinstallare tutti i pacchetti che dipendono da esso per primi.

Dall'output di esempio, sarà:

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

3

Ho notato che hai detto che volevi usare Oracle JDK. Se invece vuoi installare Oracle JDK, puoi scaricarlo ed estrarlo nella posizione che preferisci.

Quindi usi semplicemente update-alternatives per dire al tuo sistema dove è installato Java. Se non sei sicuro della sintassi delle alternative di aggiornamento, puoi usare il front-end per questo, galternative.

Ad esempio ... Uso Oracle JDK abbastanza ampiamente qui.

Lo estraggo in / opt / java /.

Quindi, quindi tutti i binari di Oracle Java sono le principali utilità per le cose relative a Java, faccio le seguenti alternative di aggiornamento:

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

Questo prende tutte le utility Oracle Java che hai estratto in precedenza e dà loro la prima priorità, nel caso in cui siano installate altre versioni di Java. (poiché Ubuntu ti consente di avere più versioni della stessa utility installata)


1

Insieme al resto delle risposte, hai controllato il tuo .bashrcfile per assicurarti che l'ambiente JAVA_HOME non sia presente? Rimuovere quella linea dovrebbe fare il trucco nel liberare Ubuntu da openjdk. Come un esempio:

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

Se vedi qualcosa del genere, elimina queste due righe e riavvia.


0

Per disinstallare OpenJDK, è necessario eseguire questi comandi nel proprio terminale. Puoi ottenere il terminale usando questi tasti, ctrl+ shift+ enter.

Rimuovi solo Openjdk:

$ sudo apt-get remove openjdk*

Rimuovi Openjdk insieme alle dipendenze:

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

Rimuovi Openjdk e i suoi file di configurazione:

$ sudo apt-get purge openjdk*

Rimuovi Openjdk insieme alle dipendenze e ai suoi file di configurazione:

$ sudo apt-get purge --auto-remove openjdk*
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.