gpt4 book ai didi

build-process - 如何设置 rpmbuild 每次调用的构建区域

转载 作者:行者123 更新时间:2023-12-03 07:47:41 24 4
gpt4 key购买 nike

我正在修改自动构建,并希望告诉 rpmbuild 在调用它时使用特定的构建区域

这类似于 existing question ,但更具体。

  • 我不想以 root 用户身份运行任何构建命令;目的只是获得 RPM,而不是在系统中安装任何东西。

  • 我不想require the user to change their dotfiles (例如$HOME/.rpmrc);构建应该是独立的,不会影响用户的现有设置。

  • 我不想将位置硬编码到 foo.spec 文件中;如果用户想在不同的位置构建,该文件应该可以按原样使用。

  • --buildroot option不是我需要的;为构建过程的 make 部分设置伪根文件系统,但我需要为整个 RPM 构建过程指定“构建区域”。

我正在寻找的是一个假设的--build-area FOODIR选项,可以将其提供给rpmbuild命令,或者等效的环境变量。因此,它应该只影响该命令的单次调用,并使其为其构建区域使用指定的用户可写位置。

我已经看到对 _topdir 宏的引用,这似乎就是我正在谈论的内容,但它似乎无法在每次调用时进行配置。

如果rpmbuild能够在需要时在该位置设置自己的环境,那就太理想了,但我不介意为每个build设置目录,因为这可以自动化作为构建的一部分。目标是让用户可写位置仅在构建运行期间存在,然后在生成 RPM 文件后通过删除整个位置来进行清理。

最佳答案

没有记录,但是_topdir决定构建区域。

因此,您可以使用 rpmbuild --define "_topdir ${PWD}/foobar" ... 设置每次调用将目录设置为您想要的任何内容。

--define是为任何宏设置值的关键,而不仅仅是 _topdir。

关于build-process - 如何设置 rpmbuild 每次调用的构建区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2971391/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com