Установить пакет RPM в определенную директорию - PullRequest
1 голос
/ 24 мая 2019

Я пытаюсь создать свой собственный RPM-пакет с файлами и каталогами, я пытаюсь распаковать файлы и каталоги в пакете в /usr/lib/python2.7/site-packages/

дотеперь я успешен со сборкой RPM, но когда я устанавливаю его с помощью команды rpm -ivh mypackage.rpm , он всегда распаковывает все каталоги в пакете rpm в корневой (/) каталог

Вот мой файл спецификаций

Name:           mx_module
Version:        1
Release:        0
Summary:        An test script to see RPM working

BuildArch:      noarch
License:        GPL
Source0:        mx_module-1.0.tar.gz

%description
I am suppose to write some description here but I don't want to :(.

%prep
%setup -q
%build
%install
mkdir -p %{buildroot}/config/
cp -a config/ %{buildroot}/config/
cp -a ott_cms/ %{buildroot}/
cp -a truss_crud/ %{buildroot}/

%files
/config
/ott_cms
/truss_crud

%changelog
* Thu May 23 2019 Abhishek  1.0.0
  - Initial rpm release

Я ожидаю, что установка пакета должна быть внутри /usr/lib/python2.7/site-packages/, а не в корневом (/) каталоге

1 Ответ

0 голосов
/ 24 мая 2019

вы выбираете окончательное местоположение внутри вашего spec-файла, а не во время установки. Вы должны изменить свой файл спецификации следующим образом:

%install
mkdir -p %{buildroot}/usr/lib/python2.7/site-packages/config/
cp -a config/ %{buildroot}/usr/lib/python2.7/site-packages/config/
cp -a ott_cms/ %{buildroot}/usr/lib/python2.7/site-packages/
cp -a truss_crud/ %{buildroot}/usr/lib/python2.7/site-packages/

%files
/usr/lib/python2.7/site-packages/config
/usr/lib/python2.7/site-packages/ott_cms
/usr/lib/python2.7/site-packages/truss_crud

на вашем %install шаге; вы создаете все дерево под %buildroot; в% files вы решаете, какие файлы и каталоги действительно должны принадлежать вашему окончательному пакету.

...