Como parte das atividades de um devops, eventualmente precisamos fazer alguma configuração nos serviços, instalar pacotes básicos, atualizações dos pacotes do sistema, etc. Durante todo esse tempo eu sempre notei uma grande dificuldade do pessoal, principalmente daqueles que trabalham com aplicações Java, o mais primordial de todas, que é instalar a JDK (Java) no seu servidor ou estação de trabalho linux.
Surgem dezenas de dúvidas, quanto ao local de instalação, como vou manter atualizado, variável de ambiente, dentre outras! Por isso resolvi escrever esse post com a forma que eu uso para instalar a JDK nos servidores que gerencio.
No site da Oracle, temos uma versão portável para linux, e que é distribuída através de um arquivo compactado no formato tar.gz. Nestas versões portáveis temos grandes vantagens de não termos problemas com pré-requisitos bem como não iremos sofrer por conflitar com pacotes que já estão instalados.
Mãos a obra…
Você vai precisar fazer o download do arquivo tar.gz e fique atento para que ele seja para a mesma arquitetura do seu sistema operacional (32 ou 64 bits).
Uma vez que tenha terminado o download, vamos mover o arquivo tar.gz para uma pasta padrão para as JVMs:
1 |
sudo mv /home/user/jdk-8u181-linux-x64.tar.gz /usr/lib/jvm |
Agora temos que descompactar este arquivo tar.gz, para isto usamos o seguinte comando:
1 |
cd /usr/lib/jvm/ |
1 |
sudo tar -xzf jdk-8u181-linux-x64.tar.gz |
Neste momento, se você der um ‘ls’ para listar os arquivos da pasta, verá que temos uma pasta chamada jdk1.8_181. O que nos resta é fazer com que todo o sistema reconheça os comandos/programas que o Java tem (java, javaws, javac, keytool, etc.). Um exemplo disto é se tentarmos executar o comando abaixo iremos receber um erro:
1 |
java -version |
O linux possui um gerenciador nativo entre as distribuições para registrar atalhos/links para determinados executáveis para todo o sistema, o update-alternatives.
Para registrarmos o nosso Java que descompactamos alguns comandos acima, precisamos fazer o seguinte:
1 |
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_181/bin/java 10 |
Agora você já pode testar se o seu Java foi registrado no seu linux usando:
1 |
java -version |
Um aviso!
Algumas distribuições podem vir com algum Java pré-instalado, geralmente vem o OpenJDK, caso você queira remover eles do sistema mas sem desinstalá-los, você pode usar o update-alternatives para remover a referência para eles. Para isto você precisará executar o comando abaixo apenas mudando os caminhos:
1 |
sudo update-alternatives --remove java /usr/java/jdk1.7.0_67/bin/java |
Para listar todas versões de Java que estão registradas, execute o seguinte comando:
1 |
sudo update-alternatives --config java |
Sobre a atualização do seu Java
Não vejo como interessante atualizar o Java junto com as atualizações dos pacotes (aquelas feitas pelo apt ou yum), por exemplo, a cada nova versão de correção que eles lançam trimestralmente. Normalmente eu opto por atualizar apenas nas atualizações principais deles, as consideradas estáveis.
Outro fator a se pensar aqui é, se você tem um software Java que roda apenas internamente, ficar atualizando o Java (quando você o instalou através de um repositório por exemplo) é acabar quebrando a compatibilidade com o seu software.