如何解包、修改、重建和安装 SRPM

Vit*_* Py 10 fedora rpm

我想修改一个 Fedora 15 包 ( gnome-shell-extensions-alternative-status-menu)。这是一个小的修改(恢复这个提交)。使用yumdownloader我可以下载一个 SRPM ( gnome-shell-extensions-3.0.2-1.g63dd27cgit.fc15.src.rpm)。

在此之后,我如何解压缩它然后重建它?

mdp*_*dpc 8

作为 ROOT 用户,我会做什么:

  1. 像安装任何其他软件包一样安装 SRPM ( rpm --install [source-rpm-filename])

  2. 检查/root/rpmbuild/SPECS目录并找到与您的包匹配的规格文件

  3. rpmbuild -bb /root/rpmbuild/SPECS/[found-filename]

生成的二进制包然后位于/root/rpmbuild/RPMS/准备通过标准rpm --install命令安装的目录中。

注意:这只是构建标准二进制包中的内容。我发布此内容是为了回答特定问题,而不是如何更改源代码和生成新包。

做修改,您既可以提供补丁作为输入,改变规格文件....或者你可以替换标准*.tar.bz2设在/root/rpmbuild/SOURCES用自己与变化,然后做构建如上所述。

请注意,您可能必须更改 SPECS 包才能使其正常工作(通常通过拔出补丁并更改由 SPECS 文件编程的一些文件名)。


编辑

似乎以 root 身份构建 rpms 是一种不好的做法(来源)。它作为非 root 用户运行良好。

添加补丁的分步说明(来自此处):

  1. 将您的补丁复制到rpmbuild/SOURCES.
  2. 编辑rpmbuild/SPECS/package.specPatch0: mypatch.patch在该Source0: ...行后添加一个right 。
  3. 在该%setup ...行后添加%patch0 -p1一行

现在它将正常构建,即。和:rpmbuild -ba SPECS/package.spec

  • 您应该澄清只有以 root 身份完成安装,而不是 rpmbuild。永远不要以 root 身份构建 rpm 文件。 (2认同)