- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个可以创建的 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/
一些系统信息: CentOS 6.5 rpmdevtools 7.5.2 redhat-rpm-config 9.0.3 转速 4.8.0 我过去通过将我需要的所有内容移动到 %{_topdir} 创
我有一个可以创建的 libfoo-devel rpm,使用技巧来覆盖 _topdir。现在我想构建一个包“bar”,它有一个 BuildRequires 'libfoo-devel”。我似乎无法找到访
我有一个 .spec 文件,它依赖于一个名为 _topdir 的变量。 现在,当您从 git checkout SRPM 源代码时,您必须去更改 _topdir 指向的位置,以使 rpmbuild 正
我是一名优秀的程序员,十分优秀!