그룹의 누구나 수요를 충족할 수 있는 종속성을 지정하는 방법이 있습니까?

그룹의 누구나 수요를 충족할 수 있는 종속성을 지정하는 방법이 있습니까?

내가 필요한 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 패키지에서 제공됩니다.

관련 정보