我有一个来自 Fedora 的老游戏,位于一个名为 6 的包中。它有一个错误,我想添加一些简单的功能。我在这里询问了该过程的一部分,(参见如何处理源 RPM 中的构建依赖关系?)得到了一些答案,发现学习曲线对于我的老大脑来说实在是太难了。文档往往想要涵盖一个包可以做的所有事情,而我很难挑选出我需要的部分。
我真正希望的是一个完整的工作流程(希望只是命令列表和所涉及目录的提及)。
它将以此开始(它有效,甚至可能是标准的):
- 使用 rpm -qi 6 查找 SRPM | grep 源
- 使用 rpm -i 6-0.5.3-38.fc35.src.rpm 获取
结果:~/rpmbuild 中的源文件和规范文件
我修改并测试新版本后需要填写以下步骤:
- 构建新的 SRPM(模拟可以做到这一点吗?)
- 构建新的 RPM 并在本地安装它们(我将根据需要进行测试和重复)
- 报告错误和修复,可能作为拉取请求
如果需要,可以重新组织这些步骤。我知道mock可以从SRPM构建RPM,但我没有看到如何直接从源代码到安装,并且在mock之外构建失败(qt-mt的一些问题)。
我希望有一个可以协同工作来完成这些事情的命令列表。我已经尽我所能,没有花一周的时间来理解各个手册页之间的术语不匹配。或者只是奇怪的用法(为什么 SRPM 的 REbuild 会构建二进制 RPMS 而不是 SRPM?)
顺便说一句,如果你想看看我提到的错误,
- 安装六个
- start it
- 将黑色设置为人类
- 将白棋设置为专家
- 设置启用交换
- 单击顶部(或底部)行中的任何十六进制,然后观察六个报告崩溃并退出。
您可以再试一次,单击板的中间,发现它没有崩溃。
对于之前没有注意到这个错误,我并不感到惊讶。交换通常只在经验丰富的玩家之间启用。我怀疑经验丰富的玩家是否会在顶排或底排与其他玩家进行第一步行动。
你处理得很好。你实际上只错过了一件事。安装 src.rpm 后:
rpm -i 6-0.5.3-38.fc35.src.rpm
你有six.spec
in ~/rpmbuild/SPECS
and six-SOMETHING.tar.gz
in ~/rpmbuild/SOURCES
快速而肮脏的方法是打开它six-SOMETHING.tar.gz
。修改文件并打包回来。进入与原始焦油球相同的结构。
然后就是:
rpmbuild -bs ~/rpmbuild/SPECS/six.spec
这将生成 src.rpm,然后您可以使用模拟构建它:
模拟六.src.rpm
(一种更快更脏的方法是调用rpmbuild -ba
它直接构建 rpm,但模拟是一种更干净的方式)。
处理包中的修复的标准方法是添加补丁。https://rpm-packaging-guide.github.io/#patching-software但如果你不关心可持续性和长期安全,那么上面的路径就可以了。
如果您想针对 fedora 6 的软件包提交错误,您可以在此处进行https://bugz.fedoraproject.org/6
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)