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.
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:
sudo dpkg -i openjdk-7-* libjpeg62-turbo* libfontconfig1* fontconfig-config*
Ubuntu 18.04 e posterior:
sudo dpkg -i openjdk-7-* libjpeg62-turbo*
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):
Foram encontrados erros durante o processamento:
openjdk-7-jre: amd64
openjdk-7-jre-headless: amd64
openjdk-7-jdk: 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:
sudo apt install -f
Observe que não há necessidade de executar novamente dpkg
depois de deixar apt
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:
sudo update-java-alternatives -s java-1.7.0-openjdk-amd64
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:
java -version
que deve gerar algo semelhante a:
versão java "1.7.0_161"
OpenJDK Runtime Environment (IcedTea 2.6.12) (7u161-2.6.12-1)
VM do servidor OpenJDK de 64 bits (compilação 24.161-b01, modo misto)
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 dos sudo vim
, sudo nano
, gksudo gedit
, etc.
Package: *
Pin: release o=Debian,n=experimental
Pin-Priority: -1
Package: *
Pin: release o=Debian,n=sid
Pin-Priority: -1
Package: openjdk-7-jdk
Pin: release o=Debian,n=experimental
Pin-Priority: 500
Package: openjdk-7-jre
Pin: release o=Debian,n=experimental
Pin-Priority: 500
Package: openjdk-7-jre-headless
Pin: release o=Debian,n=experimental
Pin-Priority: 500
Package: libjpeg62-turbo
Pin: release o=Debian,n=sid
Pin-Priority: 500
Para o Ubuntu 17.10 e versões anteriores, anexe também o seguinte (e veja a nota na parte inferior):
Package: libfontconfig1
Pin: release o=Debian,n=sid
Pin-Priority: 500
Package: fontconfig-config
Pin: release o=Debian,n=sid
Pin-Priority: 500
Instale o chaveiro Debian:
sudo apt install debian-archive-keyring
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:
Erro W: GPG: http://cdn-fastly.deb.debian.org/debian experimental InRelease: Não foi possível verificar as seguintes assinaturas porque a chave pública não está disponível: NO_PUBKEY 8B48AD6246925553 NO_PUBKEY 7638D0442B90D010
E: O repositório 'http://httpredir.debian.org/debian InRelease experimental' não está assinado.
Se você vir esse erro, adicione manualmente as chaves necessárias com:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8B48AD6246925553
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7638D0442B90D010
onde 8B48AD6246925553
e 7638D0442B90D010
deve corresponder às teclas de pub que você vê na mensagem de aviso.
Adicione os repositórios necessários:
sudo add-apt-repository 'deb http://httpredir.debian.org/debian experimental main'
sudo add-apt-repository 'deb http://httpredir.debian.org/debian sid main'
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):
sudo apt update
Instale o openjdk-7-jdk:
sudo apt install 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:
sudo update-java-alternatives -s java-1.7.0-openjdk-amd64
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:
java -version
que deve gerar algo semelhante a:
versão java "1.7.0_161"
OpenJDK Runtime Environment (IcedTea 2.6.12) (7u161-2.6.12-1)
VM do servidor OpenJDK de 64 bits (compilação 24.161-b01, modo misto)