내가 필요한 RPM을 패키징한다고 가정 해 봅시다.하나다음 중,
Foo
Bar
Baz
RPM은 이를 사양 파일에 넣는 기능을 지원합니까?
답변1
Larsen 의견을 답변으로 변환하겠습니다.
rpm 4.13.0부터 rpm은 모든 종속성에서 부울 표현식을 지원합니다.https://rpm.org/user_doc/more_dependent.html
예를 들어:
Requires: (pkgA or (pkgB and pkgC))
귀하의 경우에는 다음과 같습니다.
Requires: Foo or Bar or Baz
rpm-4.13+의 가용성은 RHEL 8 및 모든 최신 Fedora에서 사용할 수 있음을 의미합니다.
RHEL 7에서 이를 원할 경우 가상 제공을 사용하여 문제를 해결할 수 있습니다. 다음을 지정할 수 있습니다.
Requires: some-server-capability
그런 다음 Foo, Bar, Baz 패키지에 다음을 넣어야 합니다.
Provides: some-server-capability
안타깝게도 이를 위해서는 Foo, Bar 및 Baz 패키지를 수정해야 합니다. 그들이 당신의 통제하에 있지 않고 RHEL 7 이하를 사용한다면 당신은 파멸입니다.
일부 패키지는 이미 이 가상 제공을 사용하고 있습니다. 예를 들어 다음을 수행할 수 있습니다.
Requires: smtp-server
Requires: webserver
예를 들어 웹 서버는 httpd, nginx 또는 lightttpd 패키지에서 제공됩니다.