借助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的内容会自动解压,我不需要添加解压命令。
答案 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