O que é essa magia? pesquisa de aptitude "? fornece (java-runtime)"

3

Eu estava procurando como instalar o java no Debian corretamente. Veio para o wiki Debian (uma coisa que eu realmente aprecio no Debian, o wiki é ótimo), e esta é a dica que eu cheguei lá:

Just run aptitude search "?provides(java-runtime)" on your system to list available packages).

Então, pensei que esse ?provides é alguma consulta na descrição, mas eis que:

i A default-jre                 - Standard Java or Java compatible Runtime                                                         
p   default-jre:i386            - Standard Java or Java compatible Runtime                                                         
i A default-jre-headless        - Standard Java or Java compatible Runtime (headless)                                              
p   default-jre-headless:i386   - Standard Java or Java compatible Runtime (headless)                                              
p   gcj-4.8-jre                 - Java runtime environment using GIJ/Classpath                                                     
p   gcj-4.8-jre:i386            - Java runtime environment using GIJ/Classpath                                                     
p   gcj-4.8-jre-headless        - Java runtime environment using GIJ/Classpath (headless version)                                  
p   gcj-4.8-jre-headless:i386   - Java runtime environment using GIJ/Classpath (headless version)                                  
p   gcj-4.9-jre                 - Java runtime environment using GIJ/Classpath                                                     
p   gcj-4.9-jre:i386            - Java runtime environment using GIJ/Classpath                                                     
p   gcj-4.9-jre-headless        - Java runtime environment using GIJ/Classpath (headless version)                                  
p   gcj-4.9-jre-headless:i386   - Java runtime environment using GIJ/Classpath (headless version)                                  
p   gcj-jre                     - Java runtime environment using GIJ/Classpath                                                     
p   gcj-jre:i386                - Java runtime environment using GIJ/Classpath                                                     
p   gcj-jre-headless            - Java runtime environment using GIJ/Classpath (headless version)                                  
p   gcj-jre-headless:i386       - Java runtime environment using GIJ/Classpath (headless version)                                  
i A openjdk-7-jre               - OpenJDK Java runtime, using Hotspot JIT                                                          
p   openjdk-7-jre:i386          - OpenJDK Java runtime, using Hotspot JIT                                                          
i A openjdk-7-jre-headless      - OpenJDK Java runtime, using Hotspot JIT (headless)                                               
p   openjdk-7-jre-headless:i386 - OpenJDK Java runtime, using Hotspot JIT (headless)                

A string java-runtime nunca ocorre na saída, o que sugere que há propriedades ocultas sendo consultadas. Quais são esses?

    
por Tomáš Zato 06.10.2015 / 09:55

2 respostas

4

Cada pacote tem campos diferentes. Você vê o nome do pacote e a descrição curta listada, mas consulte o Provides -field.

Você pode listar todos os campos de todas as versões disponíveis de um pacote com

$ apt-cache show openjdk-7-jre

e get (encurtado, dependendo do seu sistema:)

[...]

Package: openjdk-7-jre
Source: openjdk-7
Version: 7u3-2.1.7-1
[...]
Architecture: amd64
Provides: java-runtime, java2-runtime, java5-runtime, java6-runtime, java7-runtime
Depends: openjdk-7-jre-headless (= 7u3-2.1.7-1), libasound2 (>= 1.0.16), libatk1.0-0 (>= 1.12.4), libc6 (>= 2.11), libcairo2 (>= 1.2.4), libcups2 (>= 1.4.0), libfontconfig1 (>= 2.9.0), libfreetype6 (>= 2.2.1), libgdk-pixbuf2.0-0 (>= 2.22.0), libgif4 (>= 4.1.4), libglib2.0-0 (>= 2.16.0), libgtk2.0-0 (>= 2.8.0), libjpeg8 (>= 8c), libpango1.0-0 (>= 1.14.0), libpng12-0 (>= 1.2.13-4), libpulse0 (>= 0.99.1), libx11-6, libxext6, libxi6, libxrender1, libxtst6, zlib1g (>= 1:1.1.4), libxrandr2, libxinerama1, libgl1-mesa-glx | libgl1, libatk-wrapper-java-jni (>= 0.30.4-0ubuntu2)
Recommends: libgnome2-0, libgnomevfs2-0, libgconf2-4, ttf-dejavu-extra
Suggests: icedtea-7-plugin
Conflicts: icedtea-gcjwebplugin (<< 1.0-1ubuntu4)
Description-en: OpenJDK Java runtime, using Hotspot JIT
 Full Java runtime environment - needed for executing Java GUI and Webstart
 programs. Using Hotspot JIT.
 The packages are built using the IcedTea build support and patches
 from the IcedTea project.
[...]

Sobre os arquivos listados:

  • :i386 significa que o pacote é para a arquitetura i386 (não amd64 que você provavelmente está usando)
  • headless significa para sistemas sem exibição gráfica (menos dependências)
  • gcj é o tempo de execução java do gcc project
  • openjdk é o mais oficial implementação gratuita do java que você provavelmente vai querer usar

Veja também link

    
por 06.10.2015 / 10:20
2

aptitude tem uma sintaxe de pesquisa bastante extensa e documentação para ela . Você pode pesquisar praticamente todos os relacionamentos definidos para pacotes, incluindo dependências, nome do mantenedor, arquitetura, etc., bem como propriedades como disponibilidade para download ou instalação local.

Como você provavelmente pode imaginar, a consulta que você faz pesquisa o campo Provides: para o valor java-runtime .

Ironicamente, veja também o Debian Wiki

    
por 06.10.2015 / 11:07

Tags