在定义的目录中安装 RPM 包

Install RPM package in a defined directory

我正在尝试用文件和目录构建我自己的 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/ 而不是 root(/) 目录

您决定规范文件中的最终位置,而不是在安装过程中。您应该像这样更改您的规范文件:

%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 下,您可以决定哪些文件和目录确实应该属于您的最终包。