linux怎么编写RPM的spec文件
.
RPM是RedHat Package Manager的缩写,是RedHat系统中的一个软件包管理器。RPM使用专门的spec文件来描述软件包,spec文件是一个文本文件,用来描述软件包的相关信息,如软件包的名称、版本、依赖关系等。RPM使用spec文件来生成软件包,也可以使用spec文件来安装软件包。
下面介绍一下如何编写RPM的spec文件。
spec文件的结构
spec文件的结构如下所示:
Name: #软件包名称
Version: #软件包版本
Release: #软件包发布版本
Summary: #软件包概述
License: #软件包许可证
Group: #软件包组
URL: #软件包URL
Source0: #软件包源码
BuildRoot: #软件包安装目录
BuildArch: #软件包架构
%description #软件包描述
%prep #准备构建
%build #构建
%install #安装
%files #文件列表
%clean #清理
%post #安装后
%preun #卸载前
%postun #卸载后
%changelog #修订日志
spec文件的各个字段说明
Name:软件包名称,必须为小写字母、数字、下划线、点号和中划线,且不能以数字开头。
Version:软件包版本,必须为数字、点号和中划线,且不能以点号开头。
Release:软件包发布版本,必须为数字、点号和中划线,且不能以点号开头。
Summary:软件包概述,不能包含空格。
License:软件包许可证,可以为空。
Group:软件包组,必须为小写字母、数字、下划线、点号和中划线,且不能以数字开头。
URL:软件包URL,可以为空。
Source0:软件包源码,可以为空。
BuildRoot:软件包安装目录,必须为绝对路径。
BuildArch:软件包架构,可以为空。
%description:软件包描述,可以为空。
%prep:准备构建,可以为空。
%build:构建,可以为空。
%install:安装,可以为空。
%files:文件列表,可以为空。
%clean:清理,可以为空。
%post:安装后,可以为空。
%preun:卸载前,可以为空。
%postun:卸载后,可以为空。
%changelog:修订日志,可以为空。
spec文件的编写
下面通过一个简单的例子来说明如何编写spec文件。
假设我们要编写一个名为hello的软件包,hello是一个简单的C语言程序,源代码如下所示:
#include
int main()
{
printf("Hello, world!
");
return 0;
}
hello.c
要求:
软件包名称:hello
软件包版本:1.0
软件包发布版本:1
软件包概述:一个简单的C语言程序
软件包许可证:GPL
软件包组:Development/Tools
软件包URL:http://www.example.com/
软件包源码:hello-1.0.tar.gz
软件包安装目录:/usr/local
软件包架构:i386
软件包描述:一个简单的C语言程序
软件包文件列表:
/usr/local/bin/hello
hello.spec
编写spec文件
Name: hello
Version: 1.0
Release: 1
Summary: 一个简单的C语言程序
License: GPL
Group: Development/Tools
URL: http://www.example.com/
Source0: hello-1.0.tar.gz
BuildRoot: /usr/local
BuildArch: i386
%description
一个简单的C语言程序
%prep
%build
%install
%files
/usr/local/bin/hello
%clean
%post
%preun
%postun
%changelog
* Fri Apr 1 2016 John Doe
- Initial release
相关文章