RPM的制作(.spec文件)

来源:互联网 发布:苏州罗盘网络面试题 编辑:程序博客网 时间:2024/05/07 02:29

参考的资料:《鸟哥的Linux基础篇》(此书第三版使用centos5.x)

使用系统:centos6.5

rpm和srpm文件都是对/root/rpmbuild/里面的源码和配置文件编译打包得到的

centos6.5与centos5.x在这篇里的区别

/root/rpmbuild/对应的目录,在centos5.x里是/usr/src/redhat/

同时,centos6.5比5.x多了一个BUILDROOT,用来部分替代BUILD暂存编译过程中的数据(没在5.x上面试过,所以不能把BUILDROOT对BUILD的替代说明白)

(若没有发现/root/rpmbuild/这个目录,可以尝试安装rpm-build

yum install -y rpm-build

)


前期工作:把源码与makefile打包成tar.gz格式放到: /root/rpmbuild/SOURCES下面

下面,就是最重要的设置文件*.spec的编写(这里用参考资料的例子)

[root@www SPECS]# vim main.spec<pre name="code" class="plain">Name:mainVersion:0.1Release:1%{?dist}Summary:calculate sin and cos value.Group:vampire'HomeLicense:GPLURL:http://linux.vampire.orgSource0:main-0.1.tar.gzBuildRoot:%(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)#BuildRequires:#Requires:%descriptionThis package will let you input your name and calculate sin cos value.%prep%setup -q%buildmake%installrm -rf %{buildroot}  //%{buildroot}即/root/rpmbuild/BUILDROOT/main-0.1-1.el6.i386也就是刚才设置的Buildootmkdir -p %{buildroot}/usr/local/bin/main   //此处原书上少写了“/main”编译时会出现not found的提示make install PRM_INSTALL_ROOT=%{buildroot}%files/usr/local/bin/main   //软件安装时的位置%changelog* Fri Jul 05 2014 vampire- build the program

这个例子中没有特别需要设置依赖属性需求的地方。程序的实质就是一个main调用3个简单的子程序
rpmbuild -ba main.spec具体过程(大致按main.spec的顺序进行):
1. 先进入到 BUILD 这个目录中

2. 依照 *.spec 档案内的 Name 不 Version 定丿出工作的目录名称,以我们上面的例子为例,那么系统就会在 BUILD 目录中先删
除 main-0.1 的目录,再重新建立一个main-0.1 的目录,进去该目录;

3. 对SOURCES下的tar.gz解压缩到上面进去的目录

4. 再来开始 %build 及 %install 的设定与编译!

5. 将rpm和sprm文件放到相应的地方去(/root/RPMS/i386、/root/SRPMS)



over!














0 0
原创粉丝点击