Linux 如何从不位于%\u topdir/SPECS中的等级库文件中获取等级库文件路径
一些系统信息:Linux 如何从不位于%\u topdir/SPECS中的等级库文件中获取等级库文件路径,linux,rpm,packaging,rpmbuild,rpm-spec,Linux,Rpm,Packaging,Rpmbuild,Rpm Spec,一些系统信息: CentOS 6.5 rpmdevtools 7.5.2 redhat rpm配置9.0.3 rpm 4.8.0 在过去,我已经创建了大量RPM,将我需要的所有东西都移动到%{u topdir}子结构中,对我来说,子结构是/home/user/rpmbuild/SPECS、SOURCES、BUILD等,或者手动编写脚本为我完成繁重的工作 我一直在尝试实现一种“仅限规范文件”的方式来构建这些RPM。换句话说,我只想运行rpmbuild-bb。我的问题是,“我如何从mySpec.
- CentOS 6.5
- rpmdevtools 7.5.2
- redhat rpm配置9.0.3
- rpm 4.8.0
%{u topdir}
子结构中,对我来说,子结构是/home/user/rpmbuild/SPECS、SOURCES、BUILD等
,或者手动编写脚本为我完成繁重的工作
我一直在尝试实现一种“仅限规范文件”的方式来构建这些RPM。换句话说,我只想运行rpmbuild-bb
。我的问题是,“我如何从mySpec.spec中获取mySpec.spec的位置?”我知道我个人会知道该文件在我的系统中的位置,但我需要在spec文件中创建一些绝对路径,以将我的src文件夹添加到%{u topdir}/SOURCES
文件夹中。我知道在调用rpmbuild命令之前,我可以移动到带有spec文件的目录中,然后在spec文件中使用%(pwd),但我希望使其尽可能可扩展
提前感谢您的帮助 如果安装了SRPM,*.spec存储在该宏定义的目录中:
$ rpm --showrc | grep specdir
-14:_specdir%{u topdir}/SPECS我不希望将我的规范文件放在%\u topdir/SPECS中。我正在从/home/user/运行它。我不会事先将其从该位置复制到%\u topdir/SPECS。我需要从内部找出它的位置(即/home/user/您最好的选择是在调用rpmbuild之前将envvar设置为specfile的绝对路径。或者,您可以(在linux上)深入研究/proc/$PID文件并尝试重新构造调用参数。