如何为 Suse 创建 RPM

如何为 Suse 创建 RPM

我需要在 Suse 10.1(64 位)机器上安装 Subversion 1.4 版。我无法更改这两个版本中的任何一个,而且这个发行版没有 RPM。四处寻找后,我认为我必须自己创建一个 RPM。有没有比这更好的方法?如果没有,有人能提供一些关于这个过程的提示吗?

我不需要一步一步的教程,只需要流程的基本概述。

答案1

重建现有的 src.rpm 可能是最简单的。我肯定会不是按照 configure、make、make install 的方式进行,因为 (a) 这种方式不具有可扩展性,(b) 不便于轻松删除/升级软件包,并且 (c) 不是原子的。

构建 RPM 并不难。Linux.com 上曾经有一个相当不错的初学者教程,后来他们毁了该网站。你可以试试这个,但内容太多,不容易理解。不过,总比没有好。

我会给你一些我脑海中想到的建议:

  1. 在 ~ 中设置 .rpmmacros 文件
  2. 创建 ~/rpmbuild/{RPMS,SRPMS,SPECS,BUILD,BUILDROOT,SOURCES}
  3. 将源代码 tarball 放入 ~/rpmbuild/SOURCES
  4. 将 spec 文件放在 ~/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,因为我喜欢详细检查输出。如​​果您有供应商提供的 specfile,您可能希望立即使用 7。

我的 .rpmmacros 中通常有类似的内容。

%_topdir /home/YOURNAME/rpmbuild
%packager YOUR NAME <[email protected]>
%_tmppath /tmp

至于 specfile 的语法:它并不难。有一本非常详细、非常古老的参考书,名为“最大转速'。你想知道的一切都在那里。


答案2

正如 wzzrd 所说,尝试重建现有的 SRPM。

搜索 OpenSUSE 10.3 RPMS产生两个有趣的结果:

我知道 10.3 与 10.1 相差甚远,但这是一个很好的尝试。

答案3

OpenSuse 项目提供了构建服务它可以帮助您轻松打包不仅适用于 OpenSuse/SLES 的 RPM,还适用于 Fedora/RHEL/CentOS、Debian、Ubuntu 和 Mandriva。一举多得。

答案4

最简单的方法是找到类似发行版的源 rpm。然后您应该能够在发行版上重建。我相信有一个名为 rpmbuild 的脚本可以为您完成大部分工作。

从头开始创建 RPM 可能比您想要做的工作要多,并且比这里描述的要复杂得多。

相关内容