【发布时间】:2016-12-26 16:00:36
【问题描述】:
如何处理在 rpm 的 %files 部分中包含特殊字符的文件名?
我正在构建一个 RPM,但我有一些包含特殊字符的文件名。我不是开发人员,所以我不控制签入源代码存储库的文件名。
我的示例 %files 部分如下:
%files -f files.serviceX.list
%defattr(-,serviceXuser,serviceXuser,-)
我的 files.serviceX.list 包含:
%config(noreplace) %attr(-,serviceXuser,serviceXuser) /etc/serviceX/serviceX.conf
%attr(-,serviceXuser,serviceXuser) /opt/serviceX/tests/runtests.sh
%attr(-,serviceXuser,serviceXuser) /opt/serviceX/tests/configtests.sh
%attr(-,serviceXuser,serviceXuser) /opt/serviceX/tests/badinput.sh
%attr(-,serviceXuser,serviceXuser) /opt/serviceX/tests/#1 escaping.sh
%attr(-,serviceXuser,serviceXuser) /opt/serviceX/tests/#2 bad filenames.sh
到目前为止,我发现的唯一解决方法是在 files.serviceX.list 中使用特殊字符列出包含文件名的目录:
%config(noreplace) %attr(-,serviceXuser,serviceXuser) /etc/serviceX/serviceX.conf
%attr(-,serviceXuser,serviceXuser) /opt/serviceX/tests/
有没有更好的方法来解决这个问题?
【问题讨论】:
-
我应该补充一点,引用错误的文件名不起作用并且 rpmbuild 仍然抱怨:
%attr(-,serviceXuser,serviceXuser) "/opt/serviceX/tests/#1 escaping.sh" -
您是否尝试使用
\转义空间?