Centos 7에서 java-1.8.0-openjdk를 요구하도록 rpm 사양 파일을 수정하는 방법은 무엇입니까?

Centos 7에서 java-1.8.0-openjdk를 요구하도록 rpm 사양 파일을 수정하는 방법은 무엇입니까?

나는 보통 다음과 같이 시작한다.최소 센토스 7그리고 달리다

yum install java-1.8.0-openjdk

Java 런타임 환경을 설치하려면. JAR 파일을 실행할 수 있으므로 이는 훌륭하게 작동합니다.

지금은회전 속도 사양 문서사용"필요" 절을 패키지 종속성으로 지정합니다. 예를 들면 다음과 같습니다.

Requires:        jre-headless = 1.8

그러나 내가 할 때

yum install my-rpm-1.0.0.el7.x86_64.rpm

다음과 같은 오류 메시지가 나타납니다.

Available: 1:java-1.8.0-openjdk-headless-1.8.0.272.b10-1.el7_9.i686
Available: 1:java-11-openjdk-headless-11.04.11-0.el7_6.i686
    Not found

You could try using --skip-broken to work around this problem
You could try running: rpm -Va --nofiles --nodigest

내 사양 파일의 "Requires:" 절에 어떤 문제가 있는지 아는 사람이 있나요? 나는 사양 파일이 "Requires" 절을 통해 "yum install java-1.8.0-openjdk"를 자동으로 수행하기를 원합니다.

답변1

아무것도 제공되지 않았다고 생각합니다 jre-headless = 1.8. 사용 가능한 가상 패키지를 살펴보겠습니다.

$ repoquery --provides $(repoquery --whatprovides jre-headless) | sort -u | grep jre-headless
jre-headless = 1:1.7.0
jre-headless = 1:1.8.0

따라서 다음과 같이 작성할 수 있습니다.

Requires: jre-headless = 1:1.8.0

답변2

1.81:패키지 버전 이름에 에포크 번호(흥미로운 접두사)가 포함되어 있으므로 이것만으로는 충분하지 않습니다.

# rpm -qa | grep head
java-1.8.0-openjdk-headless-1.8.0.332.b09-1.el7_9.x86_64
# rpm -q --provides java-1.8.0-openjdk-headless | grep jre
jre-1.8.0-headless = 1:1.8.0.332.b09-1.el7_9
jre-1.8.0-openjdk-headless = 1:1.8.0.332.b09-1.el7_9
jre-headless = 1:1.8.0
jre-openjdk-headless = 1:1.8.0.332.b09-1.el7_9

대신 사용하는 경우 1:1.8.0종속성 해결을 충족해야 합니다.

# grep Requ somedirectory.spec
Requires:       jre-headless = 1:1.8.0
# rpmbuild -ba somedirectory.spec
...
# rpm -qp --requires rpmbuild/RPMS/x86_64/somedirectory*
jre-headless = 1:1.8.0 
# yum -y install /root/rpmbuild/RPMS/x86_64/somedirectory*
...

관련 정보