RPM Spec文件将tar.gz解压缩到多个位置

时间:2018-12-03 16:08:34

标签: rpm rpmbuild specfiles

借助this手册,我试图生成我的第一个RPM。 我的目标是生成一个将我的文件project.tar.gz解压缩到多个目标目录中的rpm。

让我说我在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 :(得分:2)

%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