下面是CentOS系统中使用mock构建rpm的方法的完整攻略。
安装Mock
Mock是一个用于构建rpm包的工具,CentOS系统中可以通过以下命令安装:
sudo yum install mock
配置Mock
Mock的默认配置文件是位于/etc/mock
下的default.cfg
文件,可以在该文件中进行Mock的配置。例如可以修改以下配置项:
config_opts[dist]
:指定系统的发行版本,例如CentOS 7可以配置为config_opts[dist] = centos7
;config_opts[root]
:指定Mock的工作目录,可以指定为一个非系统盘的分区,例如config_opts[root] = /var/lib/mock/centos7-x86_64
;
另外,Mock还依赖于/etc/mock/site-defaults.cfg
文件和/etc/mock/site-defaults.cfg.d
目录中的配置文件,这些文件的路径可以在Mock的配置文件中指定。
准备rpm包源码和spec文件
Mock构建rpm的前提是需要准备好源码和spec文件,源码一般是在开源项目的官网上下载,spec文件则是rpm打包的配置文件。
以下是构建nginx的rpm包为例:
- 源码下载链接:http://nginx.org/download/nginx-1.21.1.tar.gz
- spec文件下载链接:https://github.com/nginx/nginx-packaging/blob/master/rpm/SPECS/nginx.spec
将下载得到的源码和spec文件放置在同一个目录下,例如~/rpmbuild/SOURCES
和~/rpmbuild/SPECS
目录。
开始构建rpm包
在终端中使用以下命令开始构建rpm包:
mock -r centos7-x86_64 ~/rpmbuild/SPECS/nginx.spec
其中-r
参数指定Mock配置文件中的root
配置项,即Mock的工作目录。~/rpmbuild/SPECS/nginx.spec
则表示要构建的rpm包的spec文件路径。
构建成功后,rpm包会生成在Mock的工作目录中,路径为~/rpmbuild/RPMS/x86_64
。
示例
下面给出两个示例,分别构建了Docker和Nginx的rpm包。
构建Docker的rpm包
- 下载Docker源码:
curl -OL https://github.com/docker/docker-ce/archive/v20.10.9.tar.gz
- 下载Docker的spec文件:
curl -OL https://raw.githubusercontent.com/docker/docker-ce-packaging/20.10-fedora/docker-ce.spec
- 将源码和spec文件放置到rpmbuild目录中:
mkdir -p ~/rpmbuild/{SOURCES,SPECS}
mv v20.10.9.tar.gz ~/rpmbuild/SOURCES
mv docker-ce.spec ~/rpmbuild/SPECS
- 构建rpm包:
mock -r centos7-x86_64 ~/rpmbuild/SPECS/docker-ce.spec
- 构建成功后,rpm包生成在
~/rpmbuild/RPMS/x86_64
目录中。
构建Nginx的rpm包
- 下载Nginx源码:
curl -OL http://nginx.org/download/nginx-1.21.1.tar.gz
- 下载Nginx的spec文件:
curl -OL https://github.com/nginx/nginx-packaging/blob/master/rpm/SPECS/nginx.spec
- 将源码和spec文件放置到rpmbuild目录中:
mkdir -p ~/rpmbuild/{SOURCES,SPECS}
mv nginx-1.21.1.tar.gz ~/rpmbuild/SOURCES
mv nginx.spec ~/rpmbuild/SPECS
- 构建rpm包:
mock -r centos7-x86_64 ~/rpmbuild/SPECS/nginx.spec
- 构建成功后,rpm包生成在
~/rpmbuild/RPMS/x86_64
目录中。
以上就是CentOS系统中使用Mock构建rpm包的完整攻略和两个示例。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Centos系统中用mock构建rpm的方法 - Python技术站