gpt4 book ai didi

linux - 构建 rpm,覆盖 _topdir,但获取 BuildRequires deps?

转载 作者:太空狗 更新时间:2023-10-29 11:39:41 25 4
gpt4 key购买 nike

我有一个可以创建的 libfoo-devel rpm,使用技巧来覆盖 _topdir。现在我想构建一个包“bar”,它有一个 BuildRequires 'libfoo-devel”。我似乎无法找到访问内容的正确方法libfoo-devel 而无需将其安装在构建主机上。我应该怎么做?

编辑:

我的构建和目标发行版都是 SuSE。

我更喜欢不需要 mock 的解决方案,因为我相信 SuSE 不会将其包含在其库存库中。

后续编辑:

我相信我寻求的答案在build 包中。也许这是 SuSE 对 mock 的回答?或者是oBS服务的分布式版本?

DESCRIPTION

build is a tool to build SuSE Linux RPMs in a safe and clean way. build will install a minimal SuSE Linux as build system into some directory and will chroot to this system to compile the package. This way you don't risk to corrupt your working system (due to a broken spec file for example), even if the package does not use BuildRoot.

build searches the spec file for a BuildRequires: line; if such a line is found, all the specified rpms are installed. Otherwise a selection of default packages are used. Note that build doesn't automatically resolve missing dependencies, so the specified rpms have to be sufficient for the build.

最佳答案

请注意,如果您真的不需要安装 libfoo-devel 来构建包 bar,最明智的选择是删除 libfoo-devel 来自 BuildRequires 指令(并且可能将需求放在它所属的位置)。

但是,如果由于某种原因您不能这样做,请创建一个“开发”rpm 数据库。基本上它涉及使用 rpm --initdb --root/path/to/fake/root。然后用标准发行版安装的所有“目标包”填充它。

那是很多 rpm --install --root/path/to/fake/root --justdb package-name.rpm 命令,但也许你可以找到一种方法来复制您的 /var/lib/rpm/* 数据库文件并将它们用作起点。一旦你有了备用的 rpm 数据库,你就可以使用 --justdb 选项伪造 libfoo-devel 包的安装。然后您就可以在家中免费进行实际的 rpm 构建。

关于linux - 构建 rpm,覆盖 _topdir,但获取 BuildRequires deps?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6380982/

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