源码包制作成rpm包

将源码包(tar包)制作成rpm 包

1.重要部分解释
Source0: //源码名称
BuildRequires: //软件依赖关系描述(可以省略)
Requires: //该 rpm 包所依赖的软件包名称
%build //本段是建立段,所执行的命令为生成软件包服务,相当于./configure 和 make
%install //这一节主要用于完成实际安装软件必须执行的命令,这一节一般是由make install 指令构成,但是有时也会包含 cp、mv、install 等指令
%clean //这一节所描述的内容表示在完成包建立的工作之后,自动执行此节下的脚本进行附加的清除工作,这一节的内容通常简单地使用 rm -rf $RPM_BUILD_ROOT 命令,
不需要指定此节的其它内容
%files //这一节指定构成包的文件的列表,它是使用节前缀%files 表示的。此外,它还包含一系列宏控制安装后的文件属性和配置信息。,分为三类--说明文档(doc),
配置文件(config)及执行程序,也根据提示编写。%files 下列出应该捆绑到 RPM 中的文件,并能够可选地设置许可权和其它信息

2.编辑 lsyncd 的 spec 规则文件 (编辑 lsyncd-2.0.5.spec 文件,先填写可以确定的部分)

Source0: lsyncd-2.0.5.tar.gz //注意名称要写对,文件名字必须与源码一致

%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT //此处没有填写完整,需根据“make install”的输出填写。

%files //此处还没有填写,后面根据提示再修改。

%changelog
//下面填写编译时间 5 月 22 日,日期格式为 date +"%a %b %d %Y",必须以*开头,以--end结尾
* Tue May 22 2012 <root@localhost>
--end

如何确定其它的参数内容呢,可以根据一下步骤,一步步填写

3.安装源码包
[root@lsyncd lsyncd-2.0.5]# ./configure //看看配置时需要依赖哪些软件包
//在配置过程中,需要的软件依赖包为 lua-devel-5.1.4-4.1.el6.i686.rpm,那么 lsyncd-2.0.5.spec
中,"BuildRequires: Requires:"软件依赖配置就可以写上 lua-devel。

到现在,lsyncd-2.0.5.spec 文件中还有“%files”没有填写。%files 表示编译完成的软件到底包括那些文件,可以执行 rpmbuild -bb lsyncd-2.0.5.spec,根据提示可以得到%files 的内容。
[root@vmware1 SPECS]# rpmbuild -bb lsyncd-2.0.5.spec
在最后会有这一段关于这些文件的错误,这里列出的所有文件,就是我们需要填写入
lsyncd-2.0.5.spec 中%files 的内容。

猜你喜欢

转载自www.linuxidc.com/Linux/2017-02/140720.htm