有没有一种工具可以将RPM .spec的依赖项安装到一个孤立的环境中? 我不会在系统上全局安装这样的依赖关系,而且我也无法这样做,因为我没有root权限。
原因
我想构build一个依赖于较新版本的B (不能在系统上全局安装)的包A.
我喜欢构build更新版本的B ,让构build工具安装B – 将其-devel到一个孤立的环境中,为构buildA提供所有必需的文件。
解决scheme
chroot来做这件事的时候我该怎么处理呢? 是的,这个工具被称为mock ,它在EPEL中。
典型用法:
rpmbuild -bs mypackage.spec mock -r epel-6-x86_64 mypackage-0.1-1.src.rpm
实际上,这是构buildRPM的首选方法,正是因为它将进程与系统隔离开来,以防止出现意外的依赖关系。
您可以修改/etc/mock的文件,让它将您自己的软件包,私人回购等拉入,或者查看文档以获取有关如何手动将软件包添加到mock chroot环境的信息。
请注意,用户应该被添加到mock组允许使用mock 。
不巧的是,红帽使用调用的koji构build服务器mock构build每个单独的包。 如果你不得不一直build立很多软件包,那么build立一个koji构build服务器是值得的。
我认为尝试在生产主机上构build软件包是不好的做法,试图在没有root权限的情况下执行它比创build自己的构build机器要复杂得多。 我通常做的是以下。
你想使用模拟。 它允许你在chroot中build立rpms