.spec文件笔记

来源:互联网 发布:windows更新后c盘变小 编辑:程序博客网 时间:2024/06/05 10:15
头文件:
(1) Summary: 用一句话概括该软件;
(2) Name: 软件名,最终RPM 软件是用该名字,版本号,释出号,体系号来命名软件的;
(3) Version: 软件包版本号, 当软件相对之前有较大改动才会增加版本号;
(4) Release: 软件包释出号, 当对软件作出补丁时,释出号加1;
(5) Vendor: 软件开发者的名字;
(6) CopyRight: 软件包采用的版权规则,一般都写GPL(自由软件),BSD,MIT,Public Domain(公共域),commercial(商业),shared(公共);
(7) Group: 软件分组,软件包所属的类型;
(8) License: 软件授权方式,一般是GPL
(9) Source: 源代码包
(10) Patch: 补丁源码;
(11) BulidRoot: 安装和编译时使用的虚拟目录,一般写为 %{_tmppath}/%{name}-%{version}-root 
 或者 %{_tmppath}/%{name}-%{version}-%{release}-root
  该参数非常重要,后面可使用$RPM_BUILD_ROOT 方式引用。
  因为在生成rpm的过程中,执行make install时就会把软件安装到上述的路径中,在打包的时候,同样依赖“虚拟目录”为“根目录”进行操作。
(12) URL: 软件主页;
(13) Requires: 该rpm所依赖的软件包的名称,可以用>= , <=表示大于,小于某一个特定版本;


预处理:%prep
预处理阶段,写一些预处理脚本执行来解开源程序包的命令,为下一步的编译安装做准备;
%prep 与%build,%install 阶段一样, 除了可以执行RPM 定义的一些宏命令,还可以执行shell命令,可以都多行;
      %preun: rpm 卸载前执行的脚本;一般写 %setup -q 即可;


%build 开始编译源码构建包,相当于 configure 与 make;


%install 把软件安装到虚拟的根目录中;为以下的%files文件段服务,这里写的是绝对路径


%post rpm安装后执行的脚本;


%files:
用于定义构成软件包的文件列表,这些文件将放入rpm 中分成三类;分为三类:说明档类(doc),配置文件(config),以及可执行程序。

还可以定义文件存取权限,拥有者以及组别。这会在虚拟的根目录下执行,不能写绝对路径,应该用宏或者变量写其相对路径。




rpm 常用命令:

 rpm -ivh XXX.lp19.x86_64.rpm  --> 安装

 rpm -i xxx.lp19.src.rpm 

 rpmbuild -ba xxx.spec   --> 查看源码

 rpm -e xxx --nodeps      --> 仅卸载该软件,不卸载依赖软件;

 


 rpm --showrc  --> 查看.spec 实现代码;

 rpm --eval "%{_bindir}" --> 查看实际对应地址;


                                                                                                                               fmoonstar 更新至 2013/04/15










原创粉丝点击