Como desinstalar o OpenJDK?

39

Não quero OpenJDKinstalar no meu sistema Ubuntu 13.04, mas tentar desinstalar openjdk-7-jregera 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 preciso fazer para que nenhum pacote novo, do qual eu não precise nenhum, seja instalado durante a remoção openjdk-7?

Fynn
fonte

Respostas:

30

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

Dessa maneira, 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á do OpenJDK (6 ou 7).

Radu Rădeanu
fonte
4
Se eu realmente precisar de um JDK, prefiro usar o JDK da Oracle em vez do OpenJDK.
Fynn
Isso não funcionou para mim.
Jgomo3
@ radu-rdeanu Para fazer isso, eu tinha que instalar o gcj antes. Quando tentei sua solução, o apt reclamou que o gcj não estava instalado. Eu instalei o gcj e removi todos os pacotes que você disse. Mas depois disso, o comando java ainda estava lá. Então, eu devo ter um ambiente com fio.
Jgomo3
@ jgomo3 Como você pode ver na minha saída, isso não aconteceu comigo. Sobre qual versão gcjvocê fala?
Radu Rădeanu 17/01/14
66

Ótima pergunta, eu estava me perguntando isso.

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 pressione enter quando solicitado para confirmar esta 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 realizar 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 isto ajude. :)

Raouf Aghrout
fonte
2
@ jgomo3 Esta resposta ajuda você? Especialmente a parte sudo apt-get remove --purge openjdk*?
landroni
1
@landroni eu tenho que testá-lo. Para fazer a solução radu-rdeanu, eu tinha que instalar o gcj antes. Dessa forma, eu poderia "removê-lo". Vou tentar esta solução primeiro desinstalando o Oracle Java, depois instalando o openjdk e outras coisas e, por último, "removendo-o" automaticamente.
Jgomo3
Deixe-me saber como seguir em frente. Lembre-se de que, se você estiver usando, autoremoveprecisa especificar a versão correta do openjdk. Você pode estar executando o openjdk-6-jre. Além disso, vale a pena notar que, se você estiver executando várias versões do openjdk, o purgecomando removerá todo o rastreio delas; portanto, tenha cuidado ao usar isso, dependendo do que você gostaria de fazer.
Raouf Aghrout
2
sudo apt-get purge openjdk*Funcionou para mim, mas também desinstalou a minha instalação do Jenkins (que depende do pacote openjdk 7) :( #
RobertG
1
a primeira opção removeu 7, mas instalou 6, a segunda funcionou: sudo apt-get purge openjdk * #
Pablo Pazos
4

Por que isso acontece

Isso acontece provavelmente porque outro pacote no seu sistema depende de Java. Ao remover openjdk-7-jre, apt-getvê 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 estes 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 (reduzido):

-----------------------
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 estão dependendo openjdk-7-jre. Enquanto esses pacotes estiverem instalados, o OpenJDK não poderá ser desinstalado sem a instalação automática de um Java alternativo.

Remover openjdk-7-jre

Se você deseja remover openjdk-7-jre(sem instalar outros pacotes), será necessário desinstalar todos os pacotes que dependem primeiro.

A partir da saída de exemplo, 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
fonte
3

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

Depois, basta usar as alternativas de atualização para informar ao seu sistema onde o Java está instalado. Se você não tiver certeza da sintaxe das alternativas de atualização, pode usar o front-end para isso, galternatives.

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

Eu o extraí para / opt / java /.

Então, para que todos os binários do Oracle Java sejam os principais utilitários para coisas relacionadas ao Java, faça o seguinte com as alternativas de atualização:

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

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

longviewbits
fonte
1

Juntamente com o restante das respostas - você verificou seu .bashrcarquivo para garantir que o ambiente JAVA_HOME não esteja 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.

Faron
fonte
0

Para desinstalar o OpenJDK, você precisa executar estes comandos no seu terminal. Você pode obter o terminal usando estas teclas, ctrl+ shift+ enter.

Remova apenas o Openjdk:

$ sudo apt-get remove openjdk*

Remova o Openjdk junto com as dependências:

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

Remova o Openjdk e seus arquivos de configuração:

$ sudo apt-get purge openjdk*

Remova o Openjdk junto com as dependências e seus arquivos de configuração:

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