Спецификация RPM использует префикс в посте - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть несколько файлов (RPM), которые я хочу упаковать в один RPM и сделать их доступными где-нибудь еще в качестве хранилища.

Требование для этого RPM должно сделать его перемещаемым. rpm -Uvh --prefix ...

Перемещение само по себе не было проблемой и работает, как и ожидалось. В моем% post (важная часть, отмеченная #) файла спецификации, где я хочу предварительно сконфигурировать репозиторий результатов, параметр префикса не изменится, когда я назову его следующим образом: rpm -Uvh --prefix /some/other/path some_rpm_name-some_rpm_version.

Я попыталсямногое, но не изменится, как:

Prefix: /mnt/extern
%global SOME_VAR %{prefix}
Prefix: /mnt/extern
%global REPO_NAME somerepo

Name:           some_rpm_name
Version:        some_rpm_version
Release:        1%{?dist}

Source:         yum.tar.gz

%prep
%setup -n yum

%install
mkdir -p %{buildroot}%{prefix}
cp -r %{_builddir}/yum %{buildroot}%{prefix}

%files
%{prefix}/yum

%post
echo '[%{REPO_NAME}]' | sudo tee /etc/yum.repos.d/%{CABIS_REPO_FILE}.repo 
echo 'name = %{REPO_NAME}' | sudo tee -a  /etc/yum.repos.d/%{CABIS_REPO_FILE}.repo 
########################
echo 'baseurl = file://%{prefix}/yum/' | sudo tee -a  /etc/yum.repos.d/%{CABIS_REPO_FILE}.repo 
########################
echo 'gpgcheck = 0' | sudo tee -a  /etc/yum.repos.d/%{CABIS_REPO_FILE}.repo 
echo 'enabled = 1' | sudo tee -a  /etc/yum.repos.d/%{CABIS_REPO_FILE}.repo 

Ожидаемый результат:

[somerepo]
name = somerepo
baseurl = file:///some/other/path/yum/
gpgcheck = 0
enabled = 1

Фактический результат:

[somerepo]
name = somerepo
baseurl = file:///mnt/extern/yum/
gpgcheck = 0
enabled = 1

Но файлы будутперенесены в /some/other/path.

У кого-нибудь есть идеи, как это исправить?

1 Ответ

0 голосов
/ 08 ноября 2019

Согласно документации: http://ftp.rpm.org/api/4.4.2.2/relocatable.html

формат вызова rpm:

rpm -Uvh --prefix /mnt/extern=/some/other/path some_rpm_name-some_rpm_version.
...