如何解决rpm 规范文件在 jenkins 构建期间无法找到已安装的库:已找到已安装但未打包的文件
我不明白为什么rpm spec文件中%files下指定的文件找不到安装的文件,让我解释一下:
我打算打包的已安装文件存在于以下位置:
-- Installing: /home/jenkins-build/build/workspace/ceph-dev-new-build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_disT/centos8/disT/centos8/MACHINE_SIZE/gigantic/release/17.0.0-4522-g564a2672/rpm/el8/buildrOOT/ceph-17.0.0-4522.g564a2672.el8.x86_64/usr/lib64/libjaegertracing.so.0
-- Installing: /home/jenkins-build/build/workspace/ceph-dev-new-build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_disT/centos8/disT/centos8/MACHINE_SIZE/gigantic/release/17.0.0-4522-g564a2672/rpm/el8/buildrOOT/ceph-17.0.0-4522.g564a2672.el8.x86_64/usr/lib64/libjaegertracing.so.0.6.1
我想将它们打包到我在规范文件中指定的 libjaeger 包中:
%if %{with jaeger}
%files -n libjaeger
%{_libdir}/libopentracing.so.*
%{_libdir}/libthrift.so.*
%{_libdir}/libjaegertracing.so.*
%post -n libjaeger -p /sbin/ldconfig
%postun -n libjaeger -p /sbin/ldconfig
%endif
_libdir 根据我的理解是 /usr/lib64
,因为安装路径 %{buildroot}%{_libdir}/filename 它应该能够像项目中的其他包一样找到文件路径似乎有效,但我打了:
Installed (but unpackaged) file(s) found:
/usr/lib64/libjaegertracing.so.0
/usr/lib64/libjaegertracing.so.0.6.1
成功打包文件:
-- Installing: /home/jenkins-build/build/workspace/ceph-dev-new-build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_disT/centos8/disT/centos8/MACHINE_SIZE/gigantic/release/17.0.0-4522-g564a2672/rpm/el8/buildrOOT/ceph-17.0.0-4522.g564a2672.el8.x86_64/usr/lib64/libosd_tp.so.1
%{_libdir}/libosd_tp.so*
我在谷歌搜索上尝试了现有的解决方案:( 不知道如何进行调试,因为是jenkins build,迭代和理解的时间不是我想要的,cmake/packaging 高手能不能给一些调试技巧。
谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。