实战经验:从源码制作RPM包

实战经验:从源码制作RPM包

作者:BlogUpdater |  时间:2018-03-09 |  浏览:4116 |  评论已关闭 条评论

今天来讲一下如何制作RPM包用于分发自己开发的应用。具体流程分为以下几个部分:

1) 安装rpmbuild
# yum install rpm-build

2) 放置源码包到SOURCE
rpmbuild工具安装完成后,会在当前用户家目录下生成rpmbuild目录,此目录下有如下的几个子目录,分别用于放置不同类型的文件。
BUILD 编译之前,如解压包后存放的路径
BUILDROOT 编译后存放的路径
RPMS 打包完成后rpm包存放的路径
SOURCES 源包所放置的路径
SPECS spec文档放置的路径
SPRMS 源码rpm包放置的路径
我们redis为例,首先从官网下载redis源码包,然后将源码包放置到SOURCES目录下。请注意,这里是直接将压缩版本的tar.gz格式的源码包直接放到SOURCES目录下。

3) 编写SPEC文件
在SPECS目录下新建redis.spec,文件内容如下所示:
#############################START
Name: redis
Version: 3.2.8
Release: 0
Summary: Redis install package

Group: Applications/Server
License: Three clause BSD license
URL: https://redis.io/
Distribution: Linux
Packager: Tom (tom@qq.com)

%description
Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker

%prep
rm -rfv $RPM_BUILD_DIR/redis-3.2.8
zcat $RPM_SOURCE_DIR/redis-3.2.8.tar.gz | tar -xvf –

%build
cd redis-3.2.8
make MALLOC=libc

%install
cd redis-3.2.8
make install

%preun
if [ -z “`ps aux | grep redis-server | grep -v grep`” ];then
killall redis-server >/dev/null
exit 0
fi

%files
%defattr(-,root,root,-)
%doc

%post

%changelog
#############################END

4) 生成RPM包
在SPECS目录下执行如下指令以生成二进制版本的rpm包。
# rpmbuild -bb redis.spec

5) 验证RPM包
如果上述步骤成功执行,则会在RPMS目录下生成redis-3.2.8-0.x86_64.rpm。
可以使用如下指令进行测试:
# rpm -ivh redis-3.2.8-0.x86_64.rpm

6) 完成。

标签:

评论已关闭。