使用dnf安装源代码rpm

当需要基于开源软件开发时,需要安装源代码。Fedora提供了非常方便的安装方法,即dnf安装src rpm方法。

本文是non-root用户安装软件包,需要安装工具包rpmdevtools,并且需要rpmbuild来构建源代码树。

案例是构建libvirt开发环境

  • 下载源代码包

dnf download --source libvirt

如果是yum-utils则使用yumdownloader --source libvirt

将在当前用户目录下下载libvirt源代码包

  • 创建一个rpm开发目录结构

rpmdev-setuptree

该命令将在用户的HOME目录下创建一个~/rpmbuild目录

  • 安装源代码包

rpm -ivh libvirt-3.7.0-2.fc27.src.rpm

这里有一个提示warning: user mockbuild does not exist - using root

注意:上述安装指令不需要root权限,源代码包会直接安装到用户目录中刚才创建的~/rpmbuild目录下。例如,软代码位于~/rpmbuild/SOURCES/libvirt-3.7.0.tar.xz以及一些patch。

  • 为了能够正确编译rpm包,需要相应的开发工具,dnf提供了一个builddep命令可以针对某个源代码软件包安装所有依赖的工具软件:

sudo dnf builddep libvirt

如果是yum-utils则使用sudo yum-builddep libvirt

  • 检查~/rpmbuild/SPECS,然后解压缩源代码和apply补丁

rpmbuild -bp ~/rpmbuild/SPECS/libvirt.spec

-bp表示把tar包解压缩,然后把所有的补丁文件合并而生成一个完整的最新功能的源代码 - 参考RPM 打包技术与典型 SPEC 文件分析

补丁后的源代码位于~/rpmbuild/BUILD/libvirt-3.7.0目录下

请检查rpmbuild --help或者man rpmbuild

  • 编译成功之后,可以通过以下命令安装

sudo dnf install -y ~/rpmbuild/x86_64/libvirt*.rpm

详细编译方法参考使用src rpm编译libvirt

参考

Last updated