¿Cómo desinstalar OpenJDK?

39

No quiero OpenJDKinstalarlo en mi sistema Ubuntu 13.04, pero al intentar desinstalarlo openjdk-7-jreaparece el siguiente mensaje:

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

¿Qué debo hacer para que no se instalen nuevos paquetes, de los cuales no necesito ninguno, al eliminarlos openjdk-7?

Fynn
fuente

Respuestas:

30

Puede usar el siguiente 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

De esta manera no se instalarán nuevos paquetes. Aquí está mi salida para el comando anterior:

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

Pero, no te sugiero que hagas esto. En un día necesitará con seguridad un OpenJDK (6 o 7).

Radu Rădeanu
fuente
44
Si realmente necesito un JDK, preferiría usar el JDK de Oracle en lugar de OpenJDK.
Fynn
Esto no funcionó para mí.
jgomo3
@ radu-rdeanu Para hacer esto, tuve que instalar gcj antes. Cuando probé su solución, apt se quejó de que gcj no estaba instalado. Instalé gcj y eliminé todos los paquetes que dijiste. Pero después de eso, el comando Java todavía estaba allí. Entonces debo tener un entorno cableado.
jgomo3
@ jgomo3 Como puede ver en mi salida, esto no me sucedió. ¿De qué versión gcjhablas?
Radu Rădeanu
66

Gran pregunta, me preguntaba esto yo mismo.

Descubrí que puede usar lo siguiente para eliminar openjdk-7-jre en Ubuntu 13.04:

sudo apt-get autoremove openjdk-7-jre

Presione 'y' y luego presione Intro cuando se le solicite que confirme este cambio. Esto también debería limpiar todas las bibliotecas de dependencias adicionales que se instalaron con él.

También descubrí que puede usar el siguiente comando para realizar una limpieza adicional:

sudo apt-get purge openjdk*

Si usa el siguiente comando:

java -version

¡Ya no debería ver el openjdk-7-jre instalado!

Espero que esto ayude. :)

Raouf Aghrout
fuente
2
@ jgomo3 ¿Te ayuda esta respuesta? ¿Especialmente el sudo apt-get remove --purge openjdk*bit?
landroni
1
@landroni tengo que probarlo. Para hacer la solución radu-rdeanu, tuve que instalar gcj antes. De esa manera podría "eliminarlo". Probaré esta solución primero desinstalando Oracle Java, luego instalando el openjdk y otras cosas, y luego "quitando automáticamente".
jgomo3
Avíseme cómo le va, recuerde que si está utilizando autoremovenecesita especificar la versión correcta de openjdk, puede estar ejecutando openjdk-6-jre. Además, vale la pena señalar que si está ejecutando varias versiones de openjdk, el purgecomando eliminará todo rastro de ellas, así que tenga cuidado al usar esto dependiendo de lo que le gustaría hacer.
Raouf Aghrout
2
sudo apt-get purge openjdk*Me funcionó, pero también desinstaló mi instalación de Jenkins (que depende del paquete openjdk 7) :(
RobertG
1
la primera opción eliminó 7 pero instaló 6, la segunda funcionó: sudo apt-get purge openjdk *
Pablo Pazos
4

Por que sucede esto

Esto sucede probablemente porque otro paquete en su sistema depende de Java. Al eliminarlo openjdk-7-jre, apt-getve que si desinstala OpenJDK, algunos paquetes tendrán dependencias insatisfechas. Para resolver esto, instala otro paquete que proporciona Java.

Para averiguar qué está causando esto, ejecute estos comandos en una 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

Ejemplo de salida (acortado):

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

Esto indica que todos los paquetes de LibreOffice dependen de openjdk-7-jre. Mientras estos paquetes estén instalados, OpenJDK no se puede desinstalar sin instalar un Java alternativo automáticamente.

Para eliminar openjdk-7-jre

Si desea eliminar openjdk-7-jre(sin instalar otros paquetes), primero deberá desinstalar todos los paquetes que dependen de él.

De la salida del ejemplo, eso será:

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

Noté que dijiste que querías usar el JDK de Oracle. Si desea instalar el JDK de Oracle, puede descargarlo y extraerlo en la ubicación que elija.

Luego solo usa las alternativas de actualización para decirle a su sistema dónde está instalado Java. Si no está seguro de la sintaxis de las alternativas de actualización, puede usar el front-end para ello, alternativas.

Por ejemplo ... Yo uso el JDK de Oracle bastante ampliamente aquí.

Lo extraigo a / opt / java /.

Entonces, para que todos los binarios de Oracle Java sean las principales utilidades para cosas relacionadas con Java, hago lo siguiente con las alternativas de actualización:

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

Esto toma todas las utilidades Oracle Java que ha extraído previamente y les da la primera prioridad, en caso de que tenga otras versiones de Java instaladas. (ya que Ubuntu le permite tener múltiples versiones de la misma utilidad instalada)

longviewbits
fuente
1

Junto con el resto de respuestas, ¿ha verificado su .bashrcarchivo para asegurarse de que el entorno JAVA_HOME no está allí? Eliminar esa línea debería hacer el truco para liberar tu Ubuntu de openjdk. Como un ejemplo:

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

Si ve algo así, elimine estas dos líneas y reinicie.

Faron
fuente
0

Para desinstalar OpenJDK, debe ejecutar estos comandos en su terminal. Puede obtener el terminal utilizando estas teclas, ctrl+ shift+ enter.

Eliminar solo Openjdk:

$ sudo apt-get remove openjdk*

Eliminar Openjdk junto con las dependencias:

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

Elimine Openjdk y sus archivos de configuración:

$ sudo apt-get purge openjdk*

Elimine Openjdk junto con las dependencias y sus archivos de configuración:

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