ceph存储 Centos下建立RPM包中spec文件编写说明书

本文介绍了在CentOS系统中构建RPM包时,如何编写spec文件的详细步骤和关键关键字。spec文件包含了软件的基础信息、安装及卸载脚本、源码处理、依赖关系等,是RPM包制作的核心。文中还提供了具体的示例和注意事项,帮助读者掌握RPM包的构建技巧。
摘要由CSDN通过智能技术生成


Centos RPM Build Shell SPEC FILE INSTRUCTIONS

一、概述

Rpm包制作最重要的就是编写.spec脚本。rpm建包的原理其实并不复杂,可以理解为按照标准的格式整理一些信息,包括:软件基础信息,以及安装、卸载前后执行的脚本,对源码包解压、打补丁、编译,安装路径和文件等。

   实际过程中,最关键的地方,是要清楚虚拟路径的位置,以及宏的定义

我自己的编写示例,可以单击下载:http://download.csdn.net/detail/skdkjxy/8237031

二、关键字

spec脚本包括很多关键字,主要有:

Name:

 软件包的名称,后面可使用%{name}的方式引用

Summary:

软件包的内容概要

Version:

软件的实际版本号,例如:1.0.1等,后面可使用%{version}引用

Release:

 发布序列号,例如:1 linuxing等,标明第几次打包,后面可使用%{release}引用

Group:

 软件分组,建议使用标准分组

License:

 软件授权方式,通常就是GPL或者MIT

Source:

 源代码包,可以带多个用Source1Source2等源,后面也可以用%{source1}%{source2}引用

BuildRoot:

这个是安装或编译时使用的虚拟目录,考虑到多用户的环境,一般定义为:

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

%{_tmppath}/%{name}-%{version}-%{release}-buildroot-%(%{__id_u}-n}

该参数非常重要,因为在生成rpm的过程中,执行make install时就会把软件安装到上述的路径中,在打包的时候,同样依赖虚拟目录根目录进行操作。后面可使用$RPM_BUILD_ROOT方式引用。

URL:

软件的主页

Vendor:

发行商或打包组织的信息,例如RedFlag Co,Ltd

Disstribution:

发行版标识

Patch:

补丁源码,可使用Patch1Patch2等标识多个补丁,使用%patch0%{patch0}引用

Prefix:

%{_prefix}这个主要是为了解决今后安装rpm包时,并不一定把软件安装到rpm中打包的目录的情况。这样,必须在这里定义该标识,并在编写%install脚本的时候引用,才能实现rpm安装时重新指定位置的功能

Prefix:

%{_sysconfdir}这个原因和上面的一样,但由于%{_prefix}/usr,而对于其他的文件,例如/etc下的配置文件,则需要用%{_sysconfdir}标识

Build Arch:

指编译的目标处理器架构,noarch标识不指定,但通常都是以/usr/share/doc/rpm-4.8.0/marcros中的内容为默认值

Requires:

rpm包所依赖的软件包名称,可以用>=<=表示大于或小于某一特定版本,例如:libpng-devel>= 1.0.20 zlib

注:“>=”号两边需用空格隔开,而不同软件名称也用空格分开还有例如PreReqRequires(pre)Requires(post)Requires(preun)Requires(postun)BuildRequires等都是针对不同阶段的依赖指定

Provides:

指明本软件一些特定的功能,以便其他rpm识别

Packager:

打包者的信息

%description

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值