我正在修改一个自动化构建,并希望告诉rpmbuild
在调用时使用特定的构建区域。
这与现有问题类似,但更为具体。
我不想以root用户身份运行任何构建命令;目标只是有一个RPM软件包,而不安装到系统中。
我不想要求用户更改他们的dotfiles(例如
$HOME/.rpmrc
);构建应为自包含的,不影响用户的现有设置。我不想将位置硬编码到
foo.spec
文件中;如果用户想要在其他位置进行构建,则该文件应可直接使用。--buildroot
选项并非我所需;它为构建过程的make
部分设置了伪根文件系统,但我需要指定整个RPM构建过程的“构建区域”。
我需要的是一个假想的--build-area FOODIR
选项,可用于rpmbuild
命令,或等效环境变量。因此,它应仅影响该命令的单个调用,并使其使用指定的用户可写位置作为其构建区域。
我看到了有关一个_topdir
宏的参考资料,它似乎就是我所说的内容,但它似乎无法针对每次调用进行配置。
如果rpmbuild
需要时可以在那个位置设置自己的环境最好,但是如果需要,我也不介意为每次构建设置目录,因为这可以作为构建的一部分自动化。目标是仅在构建运行期间存在该用户可写的位置,然后在生成RPM文件后通过删除整个位置来进行清理。
RPMOPTS='define "foo bar"'
选项来实现。 - Phil Miller