我正在学习如何为我自己的包创建 RPM。通常情况下,我可以在登录自己的帐户时做任何事情,但制作 RPM 的说明似乎总是希望您使用其他帐户。
我遵循的一个教程使用了rpm-build
和rpmdevtools
. 例如,在我的主目录和(不是我所期望的当前目录)中rpmdev-setuptree
创建一个目录。rpmbuild/
说明还建议我创建一个单独的build
帐户。这似乎太过分了,它使管理这个特殊帐户和我正在开发的帐户之间的文件变得困难。
Fedora官方文档使用fedora-packager
和fedora-review
包,然后继续让您将自己添加到模拟组。再次,它建议:
您还可以创建一个单独的用户并将其用于进行 RPM 开发。确保用户是模拟组的一部分并输入
fedora-packager-setup
命令。
这两个说明都鼓励在单独的帐户上构建 RPM。
为什么是这样?为了方便起见,我的下意识反应是尝试以某种方式解决这个问题。从我的普通帐户创建 RPM 可能会遇到什么问题?
打包时的一般原则是,您不应该对未在打包配置中声明的系统做出任何假设。这包括很多东西:构建所需的包,执行所需的包,所需的帐户(用户或组),所需的权限等。否则,您可能会发现您编写的规范文件可能会构建在您的雪花上系统,但不是在干净的环境中。即使它确实构建了,它也可能无法安装。即使它确实安装了,它也可能无法按预期工作。
通过这种方式,发行版可以使用自动构建系统,维护者只需上传打包配置,其余的由构建系统完成。当然,以这种方式构建的软件包更加可靠。因为他们需要的一切都在包装中指定,所以安装它们不太可能破坏用户的系统。
我不以那种方式阅读 Fedora 文档。对我来说,它说如果你愿意,你可以使用一个单独的帐户来完成你的打包工作,它解释了你需要做什么才能让这个工作。它并没有说你必须这样做,甚至没有鼓励你这样做。
我使用我的主帐户进行包装工作。
mock
但是,我确实通过运行构建(当然,在 Koji 或我们内部的等价物上构建)来确保我的构建要求是完整的。您可以告诉 rpmbuild 文件正在使用的位置。
--define '_builddir <Your_Root>'
您不需要使用不同的帐户运行它,尽管我认为这样做是一个好习惯。希望这有帮助。伊兰。