Answers:
我作为ROOT用户的操作:
像安装其他任何软件包一样,安装SRPM(rpm --install [source-rpm-filename]
)
检查/root/rpmbuild/SPECS
目录并找到与您的软件包匹配的规格文件
rpmbuild -bb /root/rpmbuild/SPECS/[found-filename]
然后,将生成的二进制软件包放在/root/rpmbuild/RPMS/
目录中,这些目录已准备好通过标准rpm --install
命令进行安装。
注意:这只是构建标准二进制软件包中的内容。我发布此答案是为了回答特定问题,而不是如何更改源代码并生成新软件包。
做修改,您既可以提供补丁作为输入,改变规格文件....或者你可以替换标准*.tar.bz2
设在/root/rpmbuild/SOURCES
用自己与变化,然后做构建如上所述。
请注意,您可能必须更改SPECS程序包才能正常工作(通常是通过拉出补丁程序,并更改SPECS文件编程的某些文件名)。
似乎以root身份构建rpm是一个不好的习惯(来源)。作为非root用户,它可以正常工作。
分步说明添加补丁(从此处开始):
rpmbuild/SOURCES
。rpmbuild/SPECS/package.spec
并Patch0: mypatch.patch
在该Source0: ...
行后添加一个右键。%setup ...
行之后添加%patch0 -p1
一行现在它将正常构建,即。与:rpmbuild -ba SPECS/package.spec
sudo dnf install rpmdevtools
几点:rpmbuild命令需要。而%patch0 -p1
行应该如果规范文件使用一个可以省略%autosetup
线,而不是%setup
一个(如%autosetup
自动应用补丁)。
sudo rpm -ivh --force your.rpm
OpenSSL软件包重建CentOS 6.4是SRPM软件包重建的详细示例。
上面的示例使用了Mock-软件包构建器的Jedi Light Saber。
创建Mock是为了可靠地填充chroot,然后在该chroot中重建软件包。
有关更多信息,请参见http://fedoraproject.org/wiki/Projects/Mock
在示例中,模拟被使用3次-一次“解包”软件包,然后重建.src.rpm,最后创建.rpm。