如何为 Suse 创建 RPM

Man*_*kis 7 linux rpm sles sles10

我需要在 Suse 10.1(64 位)机器上安装 Subversion 1.4 版。我无法更改这两个版本中的任何一个,并且此发行版没有 RPM。环顾四周后,我认为我必须自己创建一个 RPM。还有比这更好的方法吗?如果没有,有人对这个过程有任何提示吗?

我不需要一步一步的教程,只需要一个基本的过程大纲。

wzz*_*zrd 8

重建现有的 src.rpm 可能是最简单的。我绝对不会走配置、制作、安装的方式,因为 (a) 不能扩展,(b) 不能轻松删除/升级包,(c) 不是原子的。

构建 RPM 并不难。在 Linux.com 上曾经有一个非常好的初学者教程,在他们破坏该站点之前。你可以试试这个一个,但它是一个大量的文字,不易消化。不过,总比没有好。

我会给你一些提示,从我的脑后:

  1. 在 ~ 中设置一个 .rpmmacros 文件
  2. 创建 ~/rpmbuild/{RPMS,SRPMS,SPECS,BUILD,BUILDROOT,SOURCES}
  3. 将源 tarball 放入 ~/rpmbuild/SOURCES
  4. 将规范文件放在 ~/rpmbuild/SPECS 中
  5. 在 ~/rpmbuild/SPECS 中运行 rpmbuild -bp YOURSPEC(运行准备阶段)
  6. 在 ~/rpmbuild/SPECS 中运行 rpmbuild -bc YOURSPEC(上面并运行编译阶段)
  7. 在 ~/rpmbuild/SPECS 中运行 rpmbuild -bb YOURSPEC(在上面并构建实际包)

如果一切顺利,您的 RPM 将出现在 ~/rpmbuild/RPMS/${arch} 中。

在创建新的 RPM 时,我倾向于分别使用 5、6 和 7,因为我喜欢详细检查输出。如果您有供应商提供的规范文件,您可能想立即使用 7。

我通常在我的 .rpmmacros 中有这样的东西。

%_topdir /home/YOURNAME/rpmbuild
%packager YOUR NAME <YOUR@EMA.IL>
%_tmppath /tmp
Run Code Online (Sandbox Code Playgroud)

至于 specfile 的语法:并不难。有一个非常详细的,可能是很旧的参考工作,称为“最大 RPM ”。你想知道的都在里面。