나는 보통 다음과 같이 시작한다.최소 센토스 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.8
1:
패키지 버전 이름에 에포크 번호(흥미로운 접두사)가 포함되어 있으므로 이것만으로는 충분하지 않습니다.
# 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*
...