Gostaria de atualizar meu sistema principal para 16.04, mas trabalho em projetos que requerem o OpenJDK 7.
Aparentemente, não está disponível a partir de um trivial apt-get install openjdk-7-jdk
. Somente as versões 8 e 9 estão listadas no repositório.
Alguém pode me indicar instruções sobre como instalá-lo?
Respostas:
ATUALIZAÇÃO: Embora essa seja a resposta mais votada, provavelmente não é a que você deseja usar em 2018 devido à falta de atualizações de segurança por este PPA.
Encontrei as seguintes instruções que funcionaram para mim:
Isso define o "PPA para uploads do OpenJDK (restrito)" como um repositório de pacotes adicional, atualiza suas informações e instala o pacote com suas dependências (desse repositório).
fonte
sudo update-java-alternatives
isso para tornar o openjdk-7 o padrão.Edit 22-Jul-2019 : Esta resposta atualmente não funciona. Os pacotes JDK mencionados abaixo não estão mais disponíveis no Debian Experimental. De qualquer forma, ficaram para trás dos pacotes do Ubuntu Trusty, que continham atualizações de segurança mais recentes. Consulte as outras respostas até que isso possa ser resolvido (desculpe, sem ETA).
Não parece que o mantenedor do openjdk-r / ppa esteja atualizando o pacote openjdk-7 além da versão 7u95-2.6.4-3. A descrição desse pacote "Copiado da experimental debian no Primary Archive para Debian GNU / Linux" nos dá uma pista sobre como lidar com isso nós mesmos.
Opção 1: Instalação manual
Faça o download dos pacotes destinados à sua arquitetura:
(para a maioria dos usuários, isso significa amd64 se 64 bits ou i386 se 32 bits Ubuntu estiver instalado)
(Tente) instalar os pacotes usando
dpkg
:Ubuntu 17.10 e versões anteriores:
Ubuntu 18.04 e posterior:
Verifique a saída de
dpkg
. Se houver problemas de dependência - o que é provável -, você verá o seguinte (com sua arquitetura substituída por amd64):Se não houver problemas de dependência, ótimo, pronto, pule para a # 4. Caso contrário, se você precisar resolver alguns problemas de dependência, isso será tratado com:
Observe que não há necessidade de executar novamente
dpkg
depois de deixarapt
resolver dependências. Ele terminará automaticamente a instalação dos pacotes openjdk.Atualize alternativas java. Você pode ver todas as versões java instaladas com
update-java-alternatives --list
. Para ativar o OpenJDK Java 1.7, execute:Você pode perceber um erro sobre o
IcedTeaPlugin.so
plugin não estar disponível. Esta não é uma preocupação real para desenvolvedores que trabalham com o JDK.Verifique se o java está funcionando:
que deve gerar algo semelhante a:
Opção 2: Instalação automática (incluindo atualizações com
apt
)A pinagem pode ser utilizada para instalar e atualizar o openjdk-7-jdk e suas dependências dos repositórios Debian.
Crie um arquivo de pinagem que diga
apt
para considerar apenas os pacotes que nos interessam (certamente não queremos que toda a nossa distribuição do Ubuntu seja "atualizada" com os pacotes experimentais da Debian).Crie um arquivo
/etc/apt/preferences.d/debian
com o conteúdo abaixo. Você vai precisar de privilégios de superusuário, então use um dossudo vim
,sudo nano
,gksudo gedit
, etc.Para o Ubuntu 17.10 e versões anteriores, anexe também o seguinte (e veja a nota na parte inferior):
Instale o chaveiro Debian:
Nota: embora este seja o método mais simples de adicionar o chaveiro debian, ele pode não estar atualizado. Verifique se há saída como a seguir ao executar
apt update
na etapa 4:Se você vir esse erro, adicione manualmente as chaves necessárias com:
onde
8B48AD6246925553
e7638D0442B90D010
deve corresponder às teclas de pub que você vê na mensagem de aviso.Adicione os repositórios necessários:
Por que não usar um repositório Debian estável? Você encontrará dependências insatisfatórias com o Debian stable. Os repositórios experimentais (para openjdk-7) e sid (para libjpeg62-turbo, libfontconfig1 e fontconfig-config) são mais tolerantes com as versões de dependência.
apt
Cache de atualização (espere que isso demore um pouco, pois as listas de pacotes do Debian são grandes):Instale o openjdk-7-jdk:
Atualize alternativas java. Você pode ver todas as versões java instaladas com
update-java-alternatives --list
. Para ativar o OpenJDK Java 1.7, execute:Você pode perceber um erro sobre o
IcedTeaPlugin.so
plugin não estar disponível. Esta não é uma preocupação real para desenvolvedores que trabalham com o JDK.Verifique se o java está funcionando:
que deve gerar algo semelhante a:
notas do fontconfig
libfontconfig1
efontconfig-config
deve ser atualizado para 2.12 ou posterior no Ubuntu 17.10 e versões anteriores. Os pacotes de atualização do Debian não contêm personalizações do Ubuntu, então alguns aplicativos exibem fontes feias com esses pacotes instalados; por exemplo, Charles Web Debugging Proxy. Dependendo dos programas que você usa, você pode ou não ser afetado por esse problema.fonte
Você pode baixar um OpenJDK 7 da Azul que pode atender às suas necessidades. Ambos têm um DEB (para o sistema de pacotes) e uma distribuição ZIP. Eu trabalhei apenas com a distribuição ZIP.
http://www.azul.com/downloads/zulu/zulu-linux/
fonte
Instale o Java 7 no Ubuntu 16.04, Ubuntu 17.04
É recomendável instalar o Oracle Java , porque ele tem uma vantagem de desempenho sobre o OpenJDK . Por esse motivo, quero postar uma alternativa. Se você deseja instalar o Oracle Java, execute os seguintes comandos no terminal para instalá-lo a partir do PPA.
Adicione os repositórios necessários:
Atualize o
apt
cache e instale oracle-java7 :Durante o processo de instalação, você precisará aceitar o contrato de licença da Oracle . Uma vez instalado, precisamos definir variáveis de ambiente Java como JAVA_HOME
Corrija as variáveis de ambiente Java.
Verifique se o java está funcionando:
que deve gerar algo semelhante a:
fonte
apt-get
está tentando obter o instalador de uma página inexistente. - Se você precisar do JDK 7, poderá fazer o download dos instaladores no site Archive: oracle.com/technetwork/java/javase/downloads/…Alternativa Oracle JDK:
Eu queria evitar o esforço com repositórios porque alternava entre 7, 8 e 9, então acabei com o Oracle JDK em vez do OpenJDK. Baixado do site oficial . Não tenho certeza se a versão 80 mais recente contém as mesmas correções que a versão 161 do OpenJDK. Mas eu a tenho para desenvolvimento, de modo que isso não significa muito para mim.
Então você precisa definir
$JAVA_HOME
no ambiente para que vários scripts selecionem o JDK correto (por exemplo, Maven, JBoss etc.).Para ser completo, o JDK versão 7 foi EOL'ed, mesmo o suporte público do JDK 8 está sendo encerrado desde setembro de 2017 e não receberá atualizações públicas após setembro de 2018.
fonte
Use recipientes
Esta é uma resposta universalmente válida sobre como executar o
<outdated>
software removido no<current>
Ubuntu: conteinerize seu aplicativo .Por exemplo, use o Docker e uma imagem base do Ubuntu mais antiga, na qual o software que você está procurando ainda está disponível / mantido.
Também funciona ao contrário; experimente o software em uma distribuição Linux mais recente ou outra em seu Ubuntu estável em execução no momento.
Exemplo para Java 7 usando o Ubuntu 14.04
Instale o Docker - a versão gratuita do Docker CE está correta. Veja, por exemplo, https://docs.docker.com/install/linux/docker-ce/ubuntu/ ou use o
docker.io
pacote nas versões recentes do Ubuntu fornecidas.Em uma pasta vazia, crie um arquivo
Dockerfile
:Adicione mais pacotes nesse comando, se precisar.
Nessa pasta, execute:
Execute um comando dentro de um contêiner de uso único usando essa imagem do Java 7:
Ex .
java -version
:Resultado:
Opcionalmente, crie um invólucro por conveniência.
Crie um arquivo
/usr/local/bin/java7-in-docker
com o conteúdo:Isso disponibilizará o diretório de trabalho atual dentro do contêiner - não todo o sistema de arquivos e representará sua conta de usuário local no espaço de nome do contêiner.
Marque-o como executável:
Execute seu Java 7 de forma transparente, assim:
fonte
Uma maneira fácil é:
Adicione estas linhas a
/etc/apt/sources.list
::Atualize o apt e instale. Você provavelmente precisará fazer o downgrade do
tzdata
pacote.Depois disso, eu recomendaria comentar essas linhas e atualizar o apt novamente para impedir a instalação ou atualização de pacotes desse repositório (o que poderia levar a um comportamento inesperado).
Um problema é que você precisa reter esses pacotes para que eles não sejam removidos quando você atualiza seu sistema (especialmente o
tzdata
pacote).NOTA : Use esse método como último recurso; prefira qualquer outro que permita a atualização sem problemas.
fonte