前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >centos下无污染地打rpm包

centos下无污染地打rpm包

作者头像
jeremyxu
发布2018-05-10 18:58:58
1.1K0
发布2018-05-10 18:58:58
举报
文章被收录于专栏:jeremy的技术点滴

工作中要经常要给centos6, centos7打某应用程序的rpm包。原来安装了两个虚拟机专门干这个工作,但经常会因为打包给系统装上许多没用的软件包,占用空间,而且要频繁在两个虚拟机间切换,很是麻烦。经同事介绍,发现mock这个工具,终于较完美地解决了此问题。

使用mock前的准备工作

12

yum -y install epel-release # 由于mock是在epel仓库里的,所以还需要先装epel仓库yum -y install mock

通常情况下使用rpmbuild会新开一个用户,比如builder,这样就不会污染系统环境。我们需要把builder用户加入mock用户组:

1

usermod -a -G mock builder

mock打rpm包时需要src.rpm文件,还是用老方法生成src.rpm文件:

1

rpmbuild -bs test.spec

然后需要初始化mock环境,在/etc/mock文件夹下有各个环境的配置文件,比如centos 6就是centos-6-x86_64,centos 7就是centos-7-x86_64,初始化命令就是:

1

mock -r centos-6-x86_64 --init

可以在初始环境前修改配置文件中yum源的地址,这样生成rpm包的过程中下载相关依赖的rpm包会快很多。

使用mock

生成rpm包

1

mock -r centos-6-x86_64 rebuild test-1.1-1.src.rpm

构建完毕,rpm文件会存放在/var/lib/mock/epel-6-x86_64/result目录下。当然我们可以通过–resultdir参数来指定rpm文件的生成目录

1

mock -r centos-6-x86_64 rebuild test-1.1-1.src.rpm --resultdir=/home/builder/rpms

最后执行clean命令清理环境

1

mock -r centos-6-x86_64 --clean

mock的实现原理

简单看了看mock的实现原理,就是在chroot环境中打rpm包,很自然。

参考

  1. https://leo108.com/pid-2207/
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-04-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用mock前的准备工作
  • 使用mock
  • mock的实现原理
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档