5

我有一个tar.gz我想要创建一个 RPM 并且目前正在处理规范文件。我似乎无法理解%files在 .spec 部分中包含文件的规则是什么。Mytar.gz由两个 python 包组成,并通过一个 makefile 安装,该文件只需调用setup.pywhich useddistutils setup()来安装它们。

我目前已包含我的文档,但不确定如何选择要包含的其他内容:

%files
%doc README changelog
...

此外,我的 makefile 会为应用程序生成一个man页面;.spec 文件中应在何处/如何包含它?

我在redhat上做这个。

4

1 回答 1

6

%files部分必须列出将包含在二进制包中并因此安装在目标机器上的每个文件。

如果您按照书本制作 RPM,那么规范文件有两个不同的目的。它是一个构建脚本,详细说明如何将源代码转换为构建工件,以及一个打包脚本,详细说明应该在目标机器上安装哪些构建产品。在您的情况下,构建方面非常轻量级。

在这种传统方法中,makefile 在构建阶段运行,该%files指令列出了应该安装哪些生成的构建工件。需要明确的是,您要么不使用make install传统方法,要么将其DESTDIR用于安装到 RPM 构建目录中(即不是安装到/usr/lib/python/foo而是安装到~/rpmbuild/BUILD/usr/lib/python/foo其他地方),然后从那里选择带有%files.

所以,你应该做的是让一些先前%install的部分(可能)运行 makefile 以安装到构建区域,然后使用该%files部分来挑选结果。请记住,您可以在该%files部分中使用通配符,因此您不必明确命名每个单独的文件。

那有意义吗?我误解了你的问题吗?

于 2012-12-09T11:37:45.293 回答