如何在redhat/centos上把软件包加入私有仓库中

原创
2014/08/29 17:48
阅读数 259

       大家在linux上使用包管理软件的过程中,也会偶尔编译一些比较新潮的软件在linux机器上使用,但是当你要把这个新潮的软件在全网部署的时候怎么办?肯定是先编译好好,然后打包好,利用批量工具传输到全网机器上,然后再批量部署。既然linux发行版一般都提供了现成的包管理工具,我们为什么要重复造轮子呢?前提是你有自己的私有更新源。一般稍微有点规模的互联网公司都会选择自建私有更新源,一方面是节省IDC出口流量,一方面安全性高。

        最近我就碰到了这个需求,有一大批公司内部根据自己的业务情况编译的软件,虽然这些软件在公有软件仓库上也有,但是要么版本不符合我们要求,要么安装后部署路径不符合我们要求,所以公司定制了一批软件包,这批源码编译的软件包已经被我打包成rpm包,这个如何打包rpm包可以参考这里。然后就是把这些软件包加入自己的私有仓库中,之前我们从公网上同步了centos的软件仓库,这样只要把这些包加入这个我们同步下来的base软件仓库就可以了。但是骚年啊,这样后面你会崩溃的,我也是做到这一步才意识到之前有多蠢,之前我们在debian上就是这样操作的,打包好的deb文件直接加入同步下来的base软件仓库中,你想想社区中linux大牛岂会让你这么容易把一个包加入进去,这样要修改一系列软件仓库的校验文件,这些文件隐藏在哪里资料还真不好找。虽然最终成功了,但是过程很麻烦。不过转念一想,我为什么非得把我自己的包加入base软件仓库呢(安全限制多多)?我不可以再启动一个仓库嘛(自由发挥),柳暗花明又一村啊。

下面就来实战一下,centos本身就提供了这样的工具(createrepo),真是大快人心啊,操作起来so easy,相信debian下也有类似的工具。

1    安装createrepo

yum install createrepo.noarch
2     创建一个单独的目录,存放自己打包好的rpm包, /opt/myrepo

mkdir -p /opt/myrepo
3     初始化私有仓库目录 /opt/myrepo

createrepo /opt/myrepo

4    看看初始化的目录里面都有什么


5    现在只要把你的rpm包拷贝进/opt/myrepo的顶级目录,然后再次使用createrepo初始化即可

cp /root/zabbix_agentd-2.0.4-6.x86_64.rpm /opt/myrepo/
createrepo --update /opt/myrepo/

6    新建yum配置文件bigdata-source.repo

touch /etc/yum.repos.d/myrepo-source.repo
      内容如下:

[Myrepo]
name = This is myrepo
baseurl = file:///opt/myrepo/
7     更新yum cache

yum clean all
yum makecache



展开阅读全文
打赏
0
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部