有沒有一種方法可以指定群組中任何人都可以滿足需求的依賴關係?

有沒有一種方法可以指定群組中任何人都可以滿足需求的依賴關係?

假設我正在打包一個 RPM,它需要以下的,

Foo
Bar
Baz

RPM 是否支援將其放入規格文件的功能?

答案1

我將把拉森評論轉換成答案:

從 rpm 4.13.0 開始,rpm 支援所有相依性中的布林表達式。https://rpm.org/user_doc/more_dependency.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

例如,Web 伺服器由 httpd、nginx 或 lightttpd 套件提供。

相關內容