RPM Spec файл распакует tar.gz в несколько мест - PullRequest
0 голосов
/ 03 декабря 2018

С помощью этого руководства я пытаюсь сгенерировать мой первый RPM.Моя цель - создать rpm, который распакует мой файл project.tar.gz в несколько каталогов назначения.

Допустим, у меня есть следующая структура в tar.gz:

/part-one
   /file-one.py
   /file-two.py
/part-two  
   /file-one.py
   /file-two.py
   /subdirectory
       /file-one.py
       /file-two.py

Я хочу часть- один для установки в /opt/project-one/libs/, а вторая часть - в /opt/project-two/libs/specific-dir/

Нужно ли размещать все файлы, которые находятся в tar.gz, внутри элемента тела% files, например:?

%files
/part-one/file-one.py
/part-one/file-two.py
/part-two/file-one.py
/part-two/file-two.py
/part-two/subdirectory/file-one.py
/part-two/subdirectory/file-two.py

А как мне указать цель этих файлов?

Я понял, когда использую:

%prep
%setup -q

Содержимое tar.gz автоматически распаковывается, и я делаюне нужно добавлять команды распаковки.

1 Ответ

0 голосов
/ 04 декабря 2018

После %setup вам потребуется раздел %install, а затем раздел %file.

%install раздел устанавливает / копирует распакованный исходный код (ваш tarball) в соответствующие целевые каталоги (/opt/....).Вот пример

%setup -q

%build
# empty

%install
# create target dirs
install -p -d -m 0755 /opt/project-one/libs
install -p -d -m 0755 /opt/project-two/libs/subdirectory

# copy files
install -m 0644 part-one/*.py /opt/project-one/libs/
install -m 0644 part-two/*.py /opt/project-two/lib/subdirectory

%files
# This should take care of all files inside these dirs.
/opt/project-one/
/opt/project-two
...