Como desinstalar o OpenJDK?

32

Eu não quero o OpenJDK instalado no meu sistema Ubuntu 13.04, mas tentar desinstalar o openjdk-7-jre produz a seguinte mensagem:

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

O que eu preciso fazer para que nenhum pacote novo, do qual eu não precise de nenhum, seja instalado ao remover o openjdk-7 ?

    
por Fynn 21.08.2013 / 18:38

5 respostas

22

Você pode usar o seguinte 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

Desta forma, nenhum novo pacote será instalado. Aqui está minha saída para o comando acima:

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

Mas eu não sugiro que você faça isso. Em um dia você precisará de um OpenJDK (6 ou 7).

    
por Radu Rădeanu 21.08.2013 / 19:22
48

Grande pergunta, eu estava me perguntando isso mesmo.

Descobri que você pode usar o seguinte para remover o openjdk-7-jre no Ubuntu 13.04:

sudo apt-get autoremove openjdk-7-jre

Pressione 'y' e, em seguida, pressione enter quando solicitado para confirmar essa alteração. Isso também deve limpar todas as bibliotecas de dependência adicionais que foram instaladas com ele.

Também descobri que você pode usar o seguinte comando para executar uma limpeza adicional:

sudo apt-get purge openjdk*

Se você usar o seguinte comando:

java -version

Você não deve mais ver o openjdk-7-jre instalado!

Espero que isso ajude. :)

    
por Raouf Aghrout 21.11.2013 / 12:00
3

Percebo que você disse que queria usar o JDK da Oracle. Se você deseja instalar o JDK do Oracle, você pode baixá-lo e extraí-lo no local de sua escolha.

Então você apenas usa update-alternatives para informar ao seu sistema onde o Java está instalado. Se você não tem certeza sobre a sintaxe de update-alternatives, você pode usar o front-end para isso, galternatives.

Por exemplo ... Eu uso o JDK do Oracle bastante aqui.

Eu extraio para / opt / java /.

Então, então todos os binários do Oracle Java são os principais utilitários para coisas relacionadas a Java, eu faço o seguinte com update-alternatives:

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

Isso leva todos os utilitários Oracle Java extraídos anteriormente e dá a eles a primeira prioridade, caso você tenha outras versões do Java instaladas. (desde que o Ubuntu permite que você tenha várias versões do mesmo utilitário instalado)

    
por longviewbits 13.01.2014 / 15:33
3

Por que isso acontece

Isso acontece porque outro pacote no seu sistema depende do Java. Ao remover openjdk-7-jre , apt-get vê que, se desinstalar o OpenJDK, alguns pacotes terão dependências não atendidas. Para resolver isso, ele instala outro pacote que fornece Java.

Para descobrir o que está causando isso, execute esses comandos em um 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
  

Exemplo de saída (encurtada):

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

Isso indica que todos os pacotes do LibreOffice dependem de openjdk-7-jre . Enquanto esses pacotes estiverem instalados, o OpenJDK não poderá ser desinstalado sem instalar um Java alternativo automaticamente.

Para remover openjdk-7-jre

Se você quiser remover openjdk-7-jre (sem instalar outros pacotes), você precisará desinstalar todos os pacotes que dependem dele primeiro.

Da saída de exemplo, isso será:

sudo apt-get remove oracle-java7-installer libreoffice-filter-mobiledev libreoffice libreoffice-writer libreoffice-base libreoffice-filter-mobiledev libreoffice libreoffice-writer libreoffice-base
    
por kiri 17.01.2014 / 22:31
1

Juntamente com o resto das respostas - você verificou seu arquivo .bashrc para se certificar de que o ambiente JAVA_HOME não está lá? Remover essa linha deve fazer o truque para liberar seu Ubuntu do openjdk. Como um exemplo:

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

Se você vir algo assim, exclua essas duas linhas e reinicie.

    
por Faron 11.01.2014 / 20:53