当前位置: 主页 > 运维经验 > 系统管理 >

linux RPM打包跟YUM仓库

时间:2013-05-05 14:01来源:www.shencan.net 作者:shencan 点击:
这篇文章 简单介绍下 RPM打包 是简单介绍 因为RPM打包这个东西 如果要讲很细 那这篇博客得写很长 原理这个东西可以以后慢慢看 我写这个博客 一般喜欢 直接上干活 因为都是真正去线
欢迎大家分享自己的文档,请点击查阅:分享方法,Linux系统运维
如果你喜欢这文章,可以点击文章结尾处百度分享,分享到你的各种社区收藏,或推荐给朋友……


这篇文章 简单介绍下 RPM打包  是简单介绍  因为RPM打包这个东西 如果要讲很细 那这篇博客得写很长   原理这个东西可以以后慢慢看 我写这个博客 一般喜欢 直接上干活  因为都是真正去线上执行的 说白了 就是干活的   知道自己在干嘛就行

关于RPM打包 核心就是一个spec 文件    这个文件有它自己固定的语法  因为语法这种东西 不可能是一篇文章能接受完的  下面我会用一个例子来讲解RPM打包  里面不可能包括所有的spec文件语法 当时基本的都能包括

细节原理可以去看我同事的博客   http://www.xdays.info/rpm%E5%8C%85%E5%88%B6%E4%BD%9C.html 这里面讲解的跟细致

关于为啥要打RPM包 这个东西 不用讲了吧     还是那一句 知道自己在干嘛就行

下面我不是以root用户 搞的  其实root也可以搞   知道原理了  就知道为啥了.

在家目录下搞下面几个文件夹

下面简单介绍下

BUILD 编译目录

RPMS  打包完后 rpm包存放的目录

SOURCES 打包过程中所有需要的文件(什么源码包  配置文件 补丁啥的)

SPECS   存放spec文件

SRPMS  src RPM包的位置

下面直接我贴一个 以前弄的 关于ATS的打包spec文件   #文件太长了 我分段介绍吧

其实弄懂spec语法了 完成基本的打包 还是没问题的 就是几个 %后面那些段  能知道都是干啥的就行

这都需要注意的一个是Name  跟那几个Source 就行其他的 看单词都能看懂

真正定制化的这块

接近尾声了

因为这个是以为弄的(看日期也能看出来) 很多东西都是截图的时候 临时加的注释 不能保证100%正确 下面我还是加一些注释吧 如果上面图里面的与下面的不一样 下面的是正确的.

下面简单介绍几个段吧

%prep           这个是开始干活

%setup -q   这个是解压并且cd到目录(注意的上面说了) 别安装包是shencan1.1.tar.gz  解压后是 shencan 那就操蛋了 cd 不进去  其实这个有解决办法  还是手动mv 后在tar 吧  我不想再这里浪费时间

%patch0 -p1   这个是打补丁  #没用过

%build  大家都懂

%install  这个也没问题吧

%pre    rpm包安装之前进行的操作

%post  安装后的操作

%preun 卸载rpm之前的操作 (好像图上说错了)

%postun 卸载rpm 之后的操作

%clean 这个都懂   编译完了 该删的都删了

%files  一些文件的定义 (什么权限 路径等等)

%defattr  定义权限

%changelog  这个没啥用

开始打包了 打包需要rpmbuild 命令  没有的 yum安装就行

我们先看看 rpmbuild 的帮助吧  就是看看参数啥的

 

 

擦 比较多 我简单介绍常用的吧

-ba 既生成src.rpm又生成二进制rpm

-bs 只生成src的rpm

-bb 只生二进制的rpm

-bp 执行到pre

-bc 执行到 build段

-bi 执行install段

-bl 检测有文件没包含

没问题吧  一般用第一个

那就开始打包吧  格式为  (命令 参数 spec文件)

rpmbuild -ba SPECS/ats.spec

过程一般比较长(其实跟你手动编译时间差不多)

最后如果是exit 0 的话 然后wirte 几个文件到RPMS里面 那就OK了

 

RPM包打完了  下面讲讲YUM仓库吧   其实搞完了RPM包 如果要批量部署的话  那自己 批量rpm -vih 这样以后升级也只能这样

如果打到YUM仓库内 以后 下面的机器配置一个yum源  然后批量 yum install  yum update这样 多爽

过程很 简单 (直接复制韩大神的配置)

部署Yum源:

管理Yum源需要一个工具:yum install createrepo

规划Yum源目录:

mkdir –p /var/www/html/yum/centos/5/{i386,x86_64}   #把镜像里面的包都放进来也行 把自己刚才打进去的包放进去也行

将rpm包根据32位或64位的放进不同的目录中

初始化repodata信息:

cd /var/www/html

createrepo -p -d -o yum/centos/5/i386  yum/centos/5/i386   #每次在目录里面 添加删掉rpm包文件后 需要这样搞一下 大家都懂

createrepo -p -d -o yum/centos/5/x86_64  yum/centos/5/x86_64

每次更新rpm包时,都需要初始化一次repodata信息

 

配置本地Yum源###这个不用多说 给添加 什么163  网易yum源一样

cat >> /etc/yum.repos.d/cpis-opt.repo <<EOF

[cpis-yum]

name=cpis-yum

baseurl=http://yum_ip/yum/centos/$releasever/$basearch

enabled=1

gpgcheck=0

EOF

然后 yum clean all   就行

OK 了 先写到这里 有点累了........

转载请注明linux系统运维
http://www.linuxyw.com/linux/yunweijingyan/xitongguanli/20130505/163.html

------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片