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