Instale o Openjdk7 no Debian Squeeze

2

Eu tenho um servidor que está executando o Debian Squeeze e atualizar para o Wheezy não é uma opção. Eu preciso instalar a versão 7 do JRE, pois há algumas correções de bugs que eu preciso. Minhas opções são:

  • Instale o openjdk-7-jre a partir do repositório de pacotes wheezy
  • Instale o oracle 7 jre

Gostaríamos de instalar o openjdk, mas estou achando muito difícil. Eu tentei instalar usando o apt-get openjdk-7-jre e obtive a seguinte resposta:

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 openjdk-7-jre : Depends: openjdk-7-jre-headless (= 7u3-2.1.3-1) but it is not going to be installed
             Depends: libfontconfig1 (>= 2.9.0) but 2.8.0-2.1 is to be installed
             Depends: libgdk-pixbuf2.0-0 (>= 2.22.0) but it is not going to be installed
             Depends: libjpeg8 (>= 8c) but 8b-1 is to be installed
             Depends: libpulse0 (>= 0.99.1) but 0.9.21-3+squeeze1 is to be installed
             Depends: libatk-wrapper-java-jni (>= 0.30.4-0ubuntu2) but it is not going to be installed
E: Broken packages

Eu então tentei o aptitude e obtive essa resposta:

0 packages upgraded, 76 newly installed, 0 to remove and 0 not upgraded.
Need to get 56.9 MB of archives. After unpacking 171 MB will be used.
The following packages have unmet dependencies:
  libnss3: Conflicts: libnss3-1d (< 2:3.13.4-2) but 3.12.8-1+squeeze6 is installed.
  openjdk-7-jre: Depends: libfontconfig1 (>= 2.9.0) but 2.8.0-2.1 is installed.
             Depends: libjpeg8 (>= 8c) but it is not going to be installed.
             Depends: libpulse0 (>= 0.99.1) but it is not going to be installed.
  libgdk-pixbuf2.0-0: Depends: libglib2.0-0 (>= 2.31.18) but 2.24.2-1 is installed.
                  Depends: libjpeg8 (>= 8c) but it is not going to be installed.
                  Depends: libtiff4 (>= 3.9.5-2) but 3.9.4-5+squeeze8 is installed.
                  Breaks: libgtk2.0-0 (< 2.21.3) but 2.20.1-2 is installed.
                  Breaks: libgtk2.0-bin (< 2.21.3) but 2.20.1-2 is installed.
  icedtea-7-jre-cacao: Depends: libstdc++6 (>= 4.6) but 4.4.5-8 is installed.
  libatk-wrapper-java-jni: Depends: libglib2.0-0 (>= 2.31.8) but 2.24.2-1 is installed.
  openjdk-7-jre-headless: Depends: libjpeg8 (>= 8c) but it is not going to be installed.
                      Depends: libfontconfig1 (>= 2.9.0) but 2.8.0-2.1 is installed.
                      Depends: libglib2.0-0 (>= 2.26.0) but 2.24.2-1 is installed.
The following actions will resolve these dependencies:

     Keep the following packages at their current version:   
1)     icedtea-7-jre-cacao [Not Installed]                   
2)     icedtea-7-jre-jamvm [Not Installed]                   
3)     libatk-wrapper-java-jni [Not Installed]               
4)     libgdk-pixbuf2.0-0 [Not Installed]                    
5)     libnss3 [Not Installed]                               
6)     openjdk-7-jre [Not Installed]                         
7)     openjdk-7-jre-headless [Not Installed]                
8)     openjdk-7-jre-lib [Not Installed]                     

     Leave the following dependencies unresolved:            
9)     libatk-wrapper-java recommends libatk-wrapper-java-jni

Accept this solution? [Y/n/q/?] 

Aceitar a solução termina assim:

No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B of archives. After unpacking 0 B will be used.

Desculpe pela saída detalhada, eu sou um novato nisso.

De qualquer forma, pelo que li, é bem difícil instalar o openjdk-7 no squeeze - acho que estou procurando uma bala de prata! Alguém já fez isso? Devo desistir e obter oráculo?

Felicidades,

James

    
por james lewis 10.01.2013 / 12:35

1 resposta

4

Eu não sei a razão particular pela qual sua tentativa falhou (pode estar relacionada ao APT conf, etc.), mas eu consegui instalar o openjdk7 no squeeze facilmente sem nenhum efeito colateral perceptível até agora.

Uma palavra de aviso deve ser feita aqui: misturar pacotes de versões diferentes (por exemplo, estáveis e testes) é arriscado. Um pacote instalado a partir de outra versão pode não ser compatível com os outros e pode até quebrar outros pacotes. É especialmente arriscado atualizar pacotes críticos como o libc, que será atualizado neste caso.

Primeiramente, você precisa configurar as prioridades do pacote para que o APT não comece a puxar tudo, desde o teste. Para mais informações, consulte a página de manual apt_preferences (5) e o Manual do Administrador Debian .

  1. Inclua wheezy na sources.list (suponho que você já tenha feito isso)

  2. Prioridades de configuração

    Defina squeeze como a versão padrão

    $ cat /etc/apt/apt.conf.d/local  
    APT::Default-Release "squeeze";
    

    Isso efetivamente define a prioridade 990 para pacotes squeeze.

    Ao fazer uma atualização simulada, notei que o APT está tentando atualizar alguns pacotes do teste. apt-cache policy explicou que isso está acontecendo para pacotes que são instalados a partir de backports (prioridade de pacote instalada 100 vs 500 para pacotes disponíveis no teste). Não tenho certeza se essa é a melhor coisa a fazer, mas para resolver isso (evite atualizar pacotes de backports com versões de testes) eu minimizei a prioridade de teste (você não precisa fazer isso se não usar backports)

    $ cat /etc/apt/preferences.d/wheezy 
    Package: *
    Pin: release n=wheezy
    Pin-Priority: 10
    

    "10" é apenas um número arbitrário que eu escolhi, que é menor que 100. Eu acho que com este pin atualizações de segurança não serão buscadas para pacotes instalados do teste (ainda não testados), seria interessante resolver isso também.

  3. Instale o openjdk7 selecionando wheezy como o release de destino

    # apt-get install -t wheezy openjdk-7-jdk
    

Como as bibliotecas essenciais serão atualizadas no processo, esteja pronto para reiniciar alguns serviços (será reiniciado automaticamente com o seu contrato). E eu não recomendaria fazê-lo em uma sessão gráfica - fui instruído a parar meu gerenciador de exibição antes de atualizar a libc.

    
por 29.03.2013 / 19:16