1、获取源码包:qemu-kvm-xxxxxxxxxx.src.rpm
2、解压源码包:rpm -ivh xxx/qemu-kvm-xxx.src.rpm
源码解压之后的源文件放在:
[root@host10573621 rpmbuild]# ls -l
total 80
drwxr-xr-x 3 root root 4096 Jun 18 18:04 BUILD
drwxr-xr-x 2 root root 4096 Jun 18 18:09 BUILDROOT
drwxr-xr-x 3 root root 4096 Jun 17 16:59 RPMS ------编译结果
drwxr-xr-x 3 root root 61440 Jun 18 18:04 SOURCES -------源码
drwxr-xr-x 2 root root 4096 Jun 18 09:37 SPECS ------specs文件
drwxr-xr-x 2 root root 4096 Jun 18 18:08 SRPMS
3、在SOURCES中修改代码(可以解压其中的qemu-xxx.tar.bz2,修改源码,然后在压缩成tar.bz2)
4、编译:rpmbuild -ba xx/SPECS/xxx.spec
5、编译出来的rpm包:
[root@host10573621 rpmbuild]# cd RPMS/x86_64/
[root@host10573621 x86_64]# ls -l
total 16256
-rw-r--r-- 1 root root 1054580 Jun 18 18:08 qemu-img-ev-2.6.0-28.el7.centos.10.1.x86_64.rpm
-rw-r--r-- 1 root root 527516 Jun 18 18:08 qemu-kvm-common-ev-2.6.0-28.el7.centos.10.1.x86_64.rpm
-rw-r--r-- 1 root root 2575000 Jun 18 18:08 qemu-kvm-ev-2.6.0-28.el7.centos.10.1.x86_64.rpm
-rw-r--r-- 1 root root 12180296 Jun 18 18:09 qemu-kvm-ev-debuginfo-2.6.0-28.el7.centos.10.1.x86_64.rpm
-rw-r--r-- 1 root root 299872 Jun 18 18:08 qemu-kvm-tools-ev-2.6.0-28.el7.centos.10.1.x86_64.rpm
如果编译rpm包的环境没有事先准备好,可以按如下步骤搭建:
安装制作rpm工具:
[root@node0 rpmbuild]# yum install rpm-build –y
创建mockbuild用户和组:
[root@node0 rpmbuild]# groupadd mockbuild
[root@node0 rpmbuild]# useradd mockbuild -g mockbuild
这个时候/root目录下生成rpmbuild目录,里面包含源码和spec文件
安装编译该rpm包所缺少的依赖包:
[root@node0 rpmbuild]# yum install `rpmbuild -bb SPECS/qemu-kvm.spec 2>&1 | grep "needed" | awk '{print $1}'` -y