Rpm

rpm 規範文件建構需要 packageX 或 packageY

  • September 19, 2015

rpm 規範文件中是否有一種方法可以指定建構要求 packageX 或 packageY。

目前的 nodejs 4.1 需要 g++>=4.8 或 clang++>=3.4 才能建構包。

這只是建構 rpm 的要求,而不是安裝後軟體包工作的要求。我不知道如何指定,或者是否可以使用 BuildRequires。

無法使用 rpm 規範指定 X 或 Y。

但是,您可以做的是指定對文件路徑的依賴關係,例如:

BuildRequires: /usr/bin/sudo

yum-builddeps 然後會尋找提供特定文件的包。為此,X 和 Y 都必須提供具有相同路徑的文件。

Node.js 依賴於一些庫。在您的特定情況下,允許僅使用任何編譯器建構 node.js 是非常不明智的 - 您會看到,node.js,因為任何其他依賴於庫的軟體都應該使用相同的編譯器系列建構,因為它所依賴的庫是建構的. 然而,這不是嚴格的規則——當使用不同的編譯器系列時,一切都可能正常。但在許多情況下,由於不同的符號修飾算法,動態載入器將無法解析特定符號(例如,我已經看到過這種情況),因此除非您採取所有必要的預防措施來排除這種可能性,否則您可能不應該依靠它。所以我猜你的規範文件應該更具體,或者你應該為不同編譯器的情況創建多個 srpm。

PS我認為這個問題更適合SE門戶。

引用自:https://serverfault.com/questions/723474