CentOS系统下软件包的制作方法和过程详解

2020-01-30 17:17:27王旭

hellorpm.spec文档的内容如下:

-----------------------------------------------------------------------------

#软件包简要介绍

Summary: hellorpm is atest program。

#软件包的名字

Name: hellorpm      

#软件包的主版本号          

Version:2.2.6        

#软件包的次版本号            

Release: 1  

#源代码包,默认将在上面提到的SOURCES目录中寻找                      

Source0:%{name}-%{version}.tar.gz  

#授权协议

License: GPL              

#定义临时构建目录,这个地址将作为临时安装目录在后面引用

BuildRoot:%{_tmppath}/%{name}-%{version}-%{release}-root

#软件分类

Group:Development/Tools

#软件包的内容介绍            

%description                        

The hellorpm programis a test.

#表示预操作字段,后面的命令将在源码代码BUILD前执行

%prep                    

#构建BUILD环境,将解压源码压缩包到BUILD目录

%setup-q      

#BUILD字段,将通过直接调用源码目录中自动构建工具完成源码编译操作        

%build      

#调用源码目录中的configure命令          

./configure      

#在源码目录中执行自动构建命令make    

make          

#安装字段        

%install    

#调用源码中安装执行脚本            

makeDESTDIR=$RPM_BUILD_ROOT install

#文件说明字段,声明多余或者缺少都将可能出错

%files            

#设置文件权限属性      

%defattr(-,root,root)    

#声明/usr/local/bin/hellorpm将出现在软件包中    

/usr/local/bin/hellorpm    

#声明并设置文件属性  

%doc%attr(0444,root,root) /usr/local/man/man1/hellorpm.1

#同上,声明文档文件

%docREADME  

-------------------------------------------------------------------------------

这个文档需要说明的一点:

BuildRoot:%{_tmppath}/%{name}-%{version}-%{release}-root

上面BuildRoot变量表示的是源码的临时按照目录,rpmbuild就是通过次目录获得将要按照到系统中的所有文件,而在SPEC文档后面make install 命令中的参数DESTDIR=$RPM_BUILD_ROOT即是对该参数的引用,这个参数将传给Makefile文件一告诉自动构建工具应该安装文件那里(实际上我再前文提到过的Makefile需要作一些改造以适应RPM的构建就包括此操作,你的Makefile文件中至少要知道在RPM构建过程中引用此参数的值去控制安装操作的目标)。