Назад | Перейти на главную страницу

Как избежать пробелов в "исходном" элементе спецификации 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 чтобы получить образец zip-файла):

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

Получается, что оставив Source unescaped, и цитирование его в% install дает трюк:

Source1: Foo Bar.zip
...
%install
...
unzip "%SOURCE1"