Как избежать пробелов в спецификации исходного кода rpm?
Я пытаюсь создать RPM, но исходный файл от производителя содержит пробел в имени файла, и, похоже, нет никакого хорошего способа избежать имени файла, чтобы он его собирал.
Я пытался положить \
перед пространствами. Я пытался заменить их на %20
, Я старался +
, Я пытался положить "
вокруг, я пытался '
вокруг него.
На данный момент я работаю над этим, переименовывая исходный файл от поставщика, чтобы не было пробелов, но я действительно предпочитаю оставлять исходные имена исходных файлов поставщика неповрежденными, когда это возможно.
Без побега или цитирования я получаю:
+ 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
Вот полностью функциональный файл 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 <example@example.org>
- Whatever
1 ответ
Оказывается, что покидая Source
unescaped, и цитирование его в%install делает свое дело:
Source1: Foo Bar.zip
...
%install
...
unzip "%SOURCE1"