rpmbuild之spec文件说明

来源:互联网 发布:ubuntu开机启动程序 编辑:程序博客网 时间:2024/06/02 03:03

FAQ:

1.如何定义变量?

%define author zuosi #定义了一个变量author,值为zuosi

2.编译rpm包需要使用到的目录?

目录名 说明 macros中的宏名
BUILD 编译rpm包的临时目录%_builddir
BUILDROOT 编译后生成的软件临时安装目录%_buildrootdir
RPMS 最终生成的可安装rpm包的所在目录%_rpmdir
SOURCES 所有源代码和补丁文件的存放目录%_sourcedir
SPECS 存放SPEC文件的目录(重要)%_specdir
SRPMS 软件最终的rpm源码格式存放路径(暂时忽略掉,别挂在心上)%_srcrpmdir


Name: myapp #软件包的名字

Version: 0.3.1  #软件包的版本

Release: %(echo `data +%Y%m%d%H%M`) #发布序列号,你可以自己定义,我这里是以时间为序号

Summary: my app #软件包的摘要信息


Group: Development #软件包的安装分类,详见/usr/share/doc/rpm-*/GROUPS文件

License: GPL v2 #软件的授权方式

URL: http://www.xx.com #源码包、公司、博客等地址

BuildRoot:%(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)#make install时使用的虚拟根目录,我这里使用mktemp创建了一个临时目录,-u表示结束后删除


%description

#关于软件包的详细说明


%prep

#主要是对源代码包的解压和打补丁,而解压常用的指令就是%setup -q

echo "prep"


%build

#该阶段执行常见的configure和make操作,常见指令如:

#%configure

#make %{?_smp_flags}


%install

#该阶段执行make install操作,它会在%_buildrootdir目录里建好目录结构,然后将需要打包到rpm软件包里的文件从%_builddir里拷贝到%_buildrootdir里对应的目录里。最常见到的指令就是:

#rm -rf %{buildroot}


%clean

#编译完成后一些清理工作,主要包括对%{buildroot}目录的清空(当然这不是必须的),通常执行诸如make clean之类的命令。 

#rm -rf %{buildroot}


%files

#主要用来说明会将%{buildroot}目录下的哪些文件和目录最终打包到rpm包里,需要打包的文件在此列出。

#另外,defattr(文件权限,用户名,组名,目录权限)用来指定权限,如: %defattr(-,root,root,-),这条指令设置缺省权限。


%pre

#安装前的准备工作


%post

#安装后的工作,如设置服务的开机启动,定时任务的设定,启动服务等等


%preun

#卸载前的工作,例如停止服务,关闭服务的开机启动,删除定时任务等



0 0