RPM 的基本知识

1. RPM的简介

rpm Red Hat Package Manager (Red Hat 包管理器);现在linux 最常见的包管理方式


2. spec文件规范

制作rpm 软件包并不是一件复杂的事情,其中的关键是:编写SPEC软件包描述文件,想制作一个rpm包,必须写一个软件包描述文件(SPES);这个文件包含了软件包的诸多信息,比如软件包的名字、版本、类别、说明摘要、创建rpm包时需要执行的命令、 安装时需要执行的命令
  • 文件头信息: summary  Name  Version Release  Verdoner ...........
  • depend on other package 依赖包
  • %prep 字段:这个段是预处理段,通常用来执行一些解开源程序包的命令;为下一步的编译安装作准备;是可以执行的shell 脚本命令
  • bulild 字段:建立段,所有执行命令为生成软件包服务;如make命令
  • %install段:本段是安装段,其中的命令在安装软件包时执行
  • %changelog:记录包的修改,比如加入一个补丁,修改配置文件、日志格式等信息记录下来;
  • %files 段:本段是文件段,用于定义软件包所包含的文件,非为三类:配置文件  执行程序 和说明文档 以及定义起执行权限
  • %config:配置宏
%config(noreplace) %{_prefix}/conf/xxx.conf
%config(noreplace) %{_prefix}/conf/xxxx.conf
%config(noreplace) %{_prefix}/conf/xxxxxxx.conf

3.  RMP 打包

如果想发布rpm格式的源码包或者二进制包,就要使用rpmbuild 工具,rpm 最新的打包工具:
rpmbuild -[bspa]  ***.spec 

rpmbuild  进行打包。

先写 spec文件  --->rpmbuild 打rpm包

http://hlee.iteye.com/blog/343499


4.  rpmnew  rpmnsave

rpm spec文件里面有个名为  %config 的宏;它可以标识配置文件,这样在升级时用户对配置文件的修改就不会丢失  。 如果没有这个%config 宏,用户在安装包后修改的配置文件,在下一次安装新包后就会被覆盖。

RPM中的配置文件的制约条件有三个:

  • 该文件在spec中符合标识(默认, %config  和 %config(noreplace 三种标识方式)
  • 在rpm包版本升级时该配置文件是否更新
  • 该文件是否被用户编辑过
下面是三个制约条件组合的结果:

文件标识在RPM升级包中是否更新了? 旧版本文件未被用户编辑过 旧版本文件被用户编辑过
默认NO用rpm包内新文件覆盖用rpm包内新文件覆盖
 YES用rpm包内新文件覆盖用rpm包内新文件覆盖
%configNO用rpm包内新文件覆盖保持旧文件
 YES用rpm包内新文件覆盖旧文件保存问rpmsave,用rpm包内新文件覆盖就文件
%config(noreplace)NO用rpm包内新文件覆盖保持旧文件
 YES用rpm包内新文件覆盖保持旧文件,rpm包内新文件改为.rpmnew


在日常工作中经常遇到这中用户修改配置文件的情况,正确的方法是:
  • 首先确认文件标识不是默认方式
  • 用户先修改配置文件
  • 然后把修改后的配置文件在原来包版本的spec文件中修改,并把修改后的文件放到包里面;
  • 这样下次升级了rpm包的配置文件,这个配置文件被修改过,这样通过标识可以把旧文件:rpmnew  rpmsave

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值