Linux系统下mock构建RPM包命令详解
简介
mock最常用的方式就是打RPM包,下面用实例去解析编译源码包的命令操作过程。
命令操作
1、初始化mock环境
[mockbuild@localhost ~]$ mock -r neokylin-11-x86_64 --init
2、下载安装vim编辑器
[mockbuild@localhost ~]$ mock -r neokylin-11-x86_64 install vim
3、将宿主机上的文件拷贝到mock环境中
[mockbuild@localhost ~]$mock -r neokylin-11-x86_64 --copyin xxx.src.rpm /
4、搭建源码包的编译环境
[mockbuild@localhost ~]$ mock -r neokylin-11-x86_64 installdeps xxxx.src.rpm
5、将mock环境中的文件xxx.rpm拷贝到宿主机/目录下
[mockbuild@localhost ~]$mock -r neokylin-11-x86_64 --copyout /xxx.rpm /
6、mock环境的路径(可直接chroot到该目录进行操作)
[mockbuild@localhost ~]$ cd /var/lib/mock/neokylin-23-x86_64/root/
[mockbuild@localhost root]$ ls
bin builddir etc lib media opt root sbin sys usr
boot dev home lib64 mnt proc run srv tmp var
7、进入mock环境
[mockbuild@localhost ~]$ mock -r neokylin-11-x86_64 shell
8、解压源码包
<mock-chroot>sh-4.3# rpm -ivh anaconda-21.48.22.93-1.ns7.01.51.jk.src.rpm
9、编译源码包
sh-4.3# cd builddir/build/
<mock-chroot>sh-4.3# rpmbuild -ba SPECS/anaconda.spec
编译好之后二进制包和源码包分别在/builddir/build/RPMS/和/builddir/build/SRPMS/下根据需要进行下载。
注意
使用mock -r neokylin-11-x86_64 --init初始化mock环境后,如果依然使用搭建的环境在编译其他包的时候不需要再初始化,防止环境重复搭建。