我为rpmbuild编写了一个包装器,它在~/rpmbuild/SOURCES/
中创建了source.tgz文件。但是,当我在较旧的操作系统上使用此脚本时; rpm是内置在/usr/src/...
中的。所以在我的bash脚本里面我想得到rpmbuild的版本号;比如这样:
rpmbuild --version
给出:RPM version 4.11.1
。我会把它变成一个变量;让我们说
VERSION=4.11.1
现在我如何在我的脚本中轻松检查这是一个版本> = 4.6.0?我是否真的需要开始将其解析为major,minor和bugfix并比较这三个数字,还是有另一种更好的方法来做到这一点?类似的东西:
if [[ $VERSION >= 4.6.0 ]]
then
# do stuff...
fi
答案 0 :(得分:0)
不幸的是,答案并不像看起来那么简单。除常规MAJOR.MINOR.PATCHLEVEL
形式外,任何rpm也有release
,有时epoch
优先于版本。另外据我记得不同的基于rpm的Linux供应商(或过去)对"corner cases"的处理略有不同。所以技术上正确的答案应该提到像rpmvercmp这样的专用工具(这是许多 rpmvercmp实现之一:))