패키지를 설치하려고 하는데 종속성 누락이 보고되지 않습니다.
# 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은 Java를 원하지 않습니까? 내가 뭐 놓친 거 없니? rpm에 다른 Java가 표시됩니까? 어떻게 확인할 수 있습니까?
답변1
패키지 관리자는 바로 패키지 정보 관리자입니다. 시스템에 무엇이 있는지 실제로 알지 못하고 설치된 패키지만 알 수 있으므로 시스템에 무엇이 있는지 가정합니다.
이 디자인의 명백한 문제는 두 가지가 동기화되지 않을 수 있다는 것입니다. 예를 들어 Oracle에서 JRE를 다운로드하여 수동으로 설치한 경우 패키지 관리자는 JRE가 있는지 알지 못하므로 작동하지 않는 종속성 체인을 가리킵니다.
문제가 있다고 가정하면 여러 가지 옵션이 있습니다(rpm 패키지 목록을 확인하세요. rpm에 대한 인수를 잊어버렸습니다). 추악한 순서로 다음과 같습니다. (1) 패키지 관리 서버를 활성화하는 배포판의 JRE 버전을 설치할 수 있습니다. 2) 설치 여부에 관계없이 종속성 "jre 버전 1.7.0"이 실제로 설치되어 있다고 생각하도록 패키지 관리자를 퍼지한 다음 설치된 버전을 사용하도록 Java 바이너리를 파괴할 수 있습니다. 또는 (3) 종속성을 무시하려면 --nodeps 옵션을 사용하여 tomcat을 설치할 수 있습니다. (3)은 미끄러운 경사면이므로 시간이 지남에 따라 더 많은 종속성과 하위 종속성을 건너뛰게 됩니다.