RPM的制作(.spec文件)

本文介绍如何在CentOS 6.5环境下从源码编译并制作RPM包的过程,包括设置编译环境、准备源码文件、编写.spec文件及具体的编译步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考的资料:《鸟哥的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:	main		
Version:	0.1	
Release:	1%{?dist}
Summary:	calculate sin and cos value.

Group:		vampire'Home
License:	GPL
URL:		http://linux.vampire.org
Source0:	main-0.1.tar.gz
BuildRoot:	%(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)

#BuildRequires:	
#Requires:	

%description
This package will let you input your name and calculate sin cos value.


%prep
%setup -q


%build
make


%install
rm -rf %{buildroot}  //%{buildroot}即/root/rpmbuild/BUILDROOT/main-0.1-1.el6.i386也就是刚才设置的Buildoot
mkdir -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!















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值