我试图build立一个RPM,但供应商的源文件在文件名中有一个空格,似乎没有任何好办法来逃避文件名,以便build立。
我试过在空间前放一个\ 我试过用%20replace它们。 我试了+ 。 我试过把它放在周围,我试过了。
现在,我正在通过重新命名供应商的源文件来解决这个问题,但没有空格,但我更愿意尽可能保留原始供应商的源文件名。
没有逃脱或引用,我得到:
+ unzip .../Foo Bar.zip unzip: cannot find or open .../Foo, .../Foo.zip or .../Foo.ZIP.
用\ ,解压缩工作,但是:
error: Bad file: .../Foo\ Bar.zip: No such file or directory
这里是一个function齐全的test.spec文件(我没有zip "Foo Bar.zip" test.spec来获得一个zipfile文件):
Summary: Test Name: test Version: 1 Release: 1 License: Whatever URL: http://www.example.com/ Source1: Foo Bar.zip %description Just a test of escaping stuff... %prep %build %install %{__install} -d -m0755 %{buildroot}/foo cd %{buildroot}/foo unzip %SOURCE1 %clean %{__rm} -rf %{buildroot} %files /foo %changelog * Wed May 8 2013 Example <[email protected]> - Whatever
原来,离开Source未经转义,并在%安装引用它诀窍:
Source1: Foo Bar.zip ... %install ... unzip "%SOURCE1"