RPM: JRE 버전이 설치되어 있어도 jre 종속성에 실패했습니다.

RPM: JRE 버전이 설치되어 있어도 jre 종속성에 실패했습니다.

패키지를 설치하려고 하는데 종속성 누락이 보고되지 않습니다.

# rpm -ivh *
error: Failed dependencies:
    jre >= 1.7.0 is needed by Tomcat-7.0.37-1.noarch

동시에 Java 버전을 확인하면 다음과 같은 결과가 나타납니다.

# java -version
java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) Server VM (build 24.0-b56, mixed mode)

rpm이 원하는 것은 자바가 아닌가? 뭔가 빠졌나요? rpm에 다른 Java가 표시됩니까? 이를 어떻게 확인할 수 있습니까?

답변1

패키지 관리자는 단지 패키지 정보 관리자로서, 시스템에 무엇이 있는지, 설치된 패키지가 무엇인지, 따라서 시스템에 무엇이 있다고 가정하는지 알 수 없습니다.

이 디자인의 명백한 문제는 두 가지가 동기화되지 않을 수 있다는 것입니다. 예를 들어 Oracle에서 JRE를 다운로드하여 직접 설치한 경우 패키지 관리자는 JRE가 거기에 있는지 전혀 알지 못하므로 실패한 것을 지적하는 작업을 수행합니다. 의존성 체인.

이것이 문제라고 가정하면 여러 가지 옵션이 있습니다(rpm 패키지 목록을 확인하세요. rpm의 매개변수는 잊어버렸습니다). (1) JRE 배포판 버전을 설치하면 패키지 관리자가 만족할 것입니다. (2) 설치 여부에 관계없이 종속성 "jre 버전 1.7.0"이 실제로 설치되어 있다고 생각하도록 패키지 관리자를 퍼지한 다음 설치된 버전을 사용하도록 Java 바이너리를 파괴하거나 (3) 다음을 사용하여 tomcat을 설치할 수 있습니다. --nodeps 옵션을 사용하여 종속성을 무시합니다. (3)은 미끄러운 경사면이므로 결국 시간이 지남에 따라 더 많은 종속성과 하위 종속성을 건너뛰게 됩니다.

관련 정보