그룹 내 모든 사람의 요구 사항을 충족할 수 있는 종속성을 지정하는 방법이 있습니까?

그룹 내 모든 사람의 요구 사항을 충족할 수 있는 종속성을 지정하는 방법이 있습니까?

RPM을 패키징하는데 다음이 필요하다고 가정해 보겠습니다.하나아래에,

Foo
Bar
Baz

RPM은 사양 파일에 넣는 기능을 지원합니까?

답변1

Larson의 의견을 답변으로 변환하겠습니다.

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 패키지에서 제공됩니다.

관련 정보