1

我必须使用与 centos 打包的编译器不同的编译器(gcc)。它也是 gcc,只是重新打包了已使用不同路径安装的较新版本。

我正在使用模拟构建,它的基本设置

config_opts['chroot_setup_cmd'] = 'groupinstall build'

在我的案例中,组构建包含 CentOS 库存 gcc。我无法在模拟环境中更改任何内容。

有没有办法在构建实际进行之前删除 gcc 包?

问题是我重新打包的 gcc 编译的一些程序倾向于使用系统 /usr/include/ 而不是重新打包的 gcc 中的正确包含,所以我正在寻找一种方法来定位问题。

4

1 回答 1

1

您可以尝试使用Fedora 提供的说明来完成此任务,他们谈论在您需要安装的 rpm 不是 repo 的一部分时进行构建。

如果这不起作用,我会考虑设置自定义环境,或者如果您无法按照问题中的说明进行更改,请让您的管理员这样做。配置文件存储在 /etc/mock/*.cfg 下。我建议复制其中一个符合您的需求并将其命名为独特的名称。然后您需要添加一个额外的 repo 行(本地或远程,具体取决于您的自定义 GCC 副本所在的位置)。

如果它真的只是被标记为较新版本,这将配置环境以获取该版本的 GCC。如果有一些独特的命名约定或者由于某种原因没有被采用,您应该查看修改 chroot_setup_cmd 以简单地安装所有构建包。当我回顾一个

yum groupinstall buildsys-build 

我看到了所有相关软件包的列表。您显然会想要检查“构建”。然后,您可以修改您的 config_opts['chroot_setup_cmd'] 以使用“install”,而不是“groupinstall”,然后您可以在其中安装所有相关的构建包,以及您的自定义 GCC。

如果这仍然不起作用,您可以随时将构建包复制到 GCC 所在的您自己的个人仓库中,确保这是唯一可以从中提取的仓库,配置仓库以支持“构建”组,然后构建包裹。虽然由于年代久远,帮助不大,但Mock 文档提供了一些有用的信息,可用于使用本地存储库配置您的环境。

于 2013-01-22T16:41:40.750 回答