【问题标题】:RPM %files section: how to handle special characters in filenames?RPM %files 部分:如何处理文件名中的特殊字符?
【发布时间】: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"
  • 您是否尝试使用\ 转义空间?

标签: rpm rpmbuild rpm-spec


【解决方案1】:

您可以使用通配符并避免该问题:

%attr(-,serviceXuser,serviceXuser) /opt/serviceX/tests/*.sh

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-19
    • 2022-10-05
    • 2020-05-02
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多