相关疑难解决方法(0)

如何为每次调用设置rpmbuild的构建区域

我修改自动生成,并想告诉rpmbuild调用它,当使用特定生成区域.

这类似于现有问题,但更具体.

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

  • 我不想要求用户更改他们的dotfiles(例如$HOME/.rpmrc); 构建应该是自包含的,不会影响用户的现有设置.

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

  • --buildroot选项是不是我所需要; 为make构建过程的一部分设置伪根文件系统,但我需要为整个 RPM构建过程指定"构建区域" .

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

我已经看到了对_topdir宏的引用,这似乎就是我所说的,但它似乎不是每次调用都可配置的.

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

build-process packaging rpm rpmbuild

36
推荐指数
1
解决办法
1万
查看次数

在构建RPM时,如何相对于.spec文件的位置创建_topdir?

我有一个.spec依赖于一个名为的变量的文件_topdir.

现在当您从git签出SRPM源代码时,您必须更改_topdir指向的位置rpmbuild才能正常运行.

# We need the following line so that RPM can find the BUILD and SOURCES and RPMS dirs.
%define _topdir /root/projects/my-project/my-project-srpm/
Run Code Online (Sandbox Code Playgroud)

如何指定_topdir应该相对于.spec文件的位置,以便_topdir不进行硬编码?

rpm relative-path rpmbuild rpm-spec

17
推荐指数
3
解决办法
1万
查看次数