이건 무슨 마법인가요? 기능 검색 "?provide(java Runtime)"

이건 무슨 마법인가요? 기능 검색 "?provide(java Runtime)"

데비안에 Java를 올바르게 설치하는 방법을 찾고 있습니다. 데비안 위키(데비안에서 제가 정말 고맙게 생각하는 점 중 하나입니다. 이 위키는 훌륭합니다)에 와서 제가 얻은 팁은 다음과 같습니다.

사용 가능한 패키지를 나열하려면 시스템에서 실행하세요 aptitude search "?provides(java-runtime)".)

?provides그래서 설명에 질문이 있는 줄 알았는데 , 보세요:

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)                

이 문자열은 java-runtime출력에 나타나지 않으며 쿼리되는 숨겨진 속성이 있음을 나타냅니다. 이것들은 무엇입니까?

답변1

각 패키지에는 서로 다른 필드가 있습니다. 패키지 이름과 간단한 설명이 나열되지만 쿼리 Provides-필드가 표시됩니다.

다음을 사용하여 사용 가능한 모든 패키지 버전에 대한 모든 필드를 나열할 수 있습니다.

$ apt-cache show openjdk-7-jre

그리고 get(시스템에 따라 단축됨)

[...]

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.
[...]

나열된 파일 정보:

  • :i386패키지가 i386아키텍처( amd64사용 중인 아키텍처가 아님) 용임을 나타냅니다.
  • headless그래픽 디스플레이가 없는 시스템을 의미합니다(종속성 감소).
  • gcjgcc프로젝트에 Java 런타임이 있습니까?
  • openjdk더 많은 것입니다공식적인사용하고 싶은 Java의 무료 구현

당신은 또한 볼 수 있습니다https://askubuntu.com/questions/377750/what-is-the-difference-Between-default-jdk-ecj-gcj-and-openjdk

답변2

aptitude상당히 광범위한 검색 구문이 있으며,문서. 종속성, 관리자 이름, 아키텍처 등은 물론 다운로드 가능 또는 로컬 설치 가능과 같은 속성을 포함하여 패키지에 대해 정의된 거의 모든 관계를 검색할 수 있습니다.

짐작할 수 있듯이 요청한 쿼리는 Provides:필드에서 값을 검색합니다 java-runtime.

다소 아이러니하게도 다음을 참조하세요.데비안 위키

관련 정보