在构建RPM包时,我如何使用Requires或一些类似的标记来指定node.js版本0.10.28或更高版本作为先决条件?它不在默认的存储库中,而且用户可能已经从源代码构建了它。我已经在网上查看过了,看起来我只能Require一个由RPM文件提供的“功能”。另外,我不想寻找/usr/bin/ node,因为它可能在其他地方安装。我宁愿使用类似于which node的东西来检测它。
发布于 2014-07-30 15:09:48
RPM Requires行不能在which的意义上是动态的)。它要么指定包名、功能,要么指定文件(按完整路径)。
您可以在RPM的node.js脚本中检测到%pre,如果找不到它就可以退出(尽管我不推荐这样做)。
您可以在%post期间检测到它,并在没有发现警告时打印出警告,提醒用户他们需要安装它。
您可以在应用程序启动期间(假设您的应用程序是独立的)检测到它,并在那里对它进行警告(可能除了在%post期间提醒它之外)。
或者,您可以Require我前面提到的事情之一,并让用户来获得正确的信息(或者--force,他们通过了错误)。
https://stackoverflow.com/questions/25040274
复制相似问题