CentOS下关于源码打包成rpm安装包
2016-05-30 07:58
531 查看
CentOS下关于源码打包成rpm安装包
平台:centos6.5首先是搭建环境:
[cpp]view plaincopyprint?
[root@localhostbinbin]#yuminstall-yrpm-build</span>
[cpp]view plaincopyprint?
[root@localhostbinbin]#yuminstallredhat-rpm-config
之后会在/root目录下有一个rpmbuild目录
[cpp]view plaincopyprint?
[root@localhostrpmbuild]#pwd
/root/rpmbuild</span>
进入该目录,里面有五个文件夹分别是BUILD BUILDROOT RPMS SOURCES SPECS SRPMS
刚开始时都是空的
[html]view plaincopyprint?
[root@localhostrpmbuild]#ls
BUILDBUILDROOTRPMSSOURCESSPEC***PMS
如果没有这几个目录可以手动添加创建
这六个目录的作用分别是:
BUILD :rpmbuild编译软件的目录
BUILDROOT :
RPMS :rpmbuild创建binary RPM 所存放的目录
SOURCES :存放源代码的目录
SPECS :存放spec文件的目录
SRPMS :rpmbuild创建souce RPM 所存放的目录
首先是将放置有源码的文件夹进行打包。此处我的文件夹起名为login-1.0
[cpp]view plaincopyprint?
[root@localhostbinbin]#tarzcvflogin-1.0.tar.gzlogin-1.0
[root@localhostbinbin]#ls
login-1.0.tar.gzlogin-1.0
将login-1.0.tar.gz拷贝至rpmbuild/SOUCES目录下
[html]view plaincopyprint?
[root@localhostbinbin]#cplogin-1.0.tar.gz/root/rpmbuild/SOURCES
[root@localhostSOURCES]#ls
login-1.0.tar.gz
此时进入SPEC目录,编写SPEC文件(此步是打包rpm包的关键一步)
[html]view plaincopyprint?
[root@localhostSOURCES]#cd../SPECS
[root@localhostSPECS]#touchlogin.spec
[root@localhostSPECS]#ls
login.spec
[root@localhostSPECS]#vimlogin.spec
[html]view plaincopyprint?
#名字
Name:login
#版本号
Version:1.0
#编译的次序
Release:1
#一句话介绍包(不超过50个字符)
Summary:istest
Group:Applications/Communications
License:GPL
URL:www.ciis.com
#要安装的压缩包源文件
Source:login-1.0.tar.gz
BuildRoot:%{_tmppath}/%{name}-%{version}-root
%description
atest
#构建包前的处理
%prep
#--解压:这里主要是构建的时候解压缩源码到系统目录,这里是$RPM_BUILD_DIR
#setup-c解压的时候会生成一个和压缩包同名的新目录;setup-ndirname指定一个新的目录以解压缩setup-q直接解压,不产生新的目录
%setup-q
#--生成:这里主要是构建二进制包的的时候执行编译生成二进制文件
%build
make
#--安装:构建的时候把当前文件安装到系统目录$RPM_BUILD_ROOT/下,二进制安装的时候是安装文件到/根目录下
%install
#makeinstall#使用makefile的install,方便
#没有makefile,自定义安装脚本
rm-rf$RPM_BUILD_ROOT/*
mkdir-p$RPM_BUILD_ROOT/usr/bin/
cp-r$RPM_BUILD_DIR/%{name}-%{version}$RPM_BUILD_ROOT/usr/bin/
#安装完成后续:二进制包安装后的处理脚本
%post
chmod+x/usr/bin/%{name}-%{version}/confAgent
chmod+x/usr/bin/%{name}-%{version}/check_confAgent.sh
#卸载完成后续:二进制包卸载完成后的处理脚本
%postun
rm-fr/usr/bin/%{name}-%{version}
#清理:构建包完成后处理
%clean
rm-rf$RPM_BUILD_ROOT
#文件列表:指示哪些文件应该被安装到系统中以及安装的目录;
#构建包时,文件列表的文件或目录必须和虚拟目录RPM_BUILD_ROOT中的文件或目录一致,否则构建时会
#提示找不到文件
%files
%defattr(-,root,root)
/usr/bin/%{name}-%{version}
%changelog
保存退出,执行打包命令
[html]view plaincopyprint?
[root@localhostSPECS]#rpmbuild-balogin.spec</span>
之后会在RPMS/i686目录下有相应的rpm包,这里是login-1.0-1.i686.rpm
[html]view plaincopyprint?
[root@localhostSPECS]#cd../RPMS/i686
[root@localhosti686]#pwd
/root/rpmbuild/RPMS/i686
[root@localhosti686]#ls
login-1.0-1.i686.rpm
测试安装
[html]view plaincopyprint?
[root@localhostbinbin]#ls
login-1.0-1.i686.rpm
[root@localhostbinbin]#rpm-ivhlogin-1.0-1.i686.rpm
[root@localhostbinbin]#/usr/bin/login-1.0/demo
即可运行客户端
相关文章推荐
- 批量自动安装常用软件
- 批量自动安装常用软件
- 企业批量部署RealVNC远程控制软件
- 好用的Markdown编辑器一览
- 网上视频站 视频下载利器 优酷网 视频下载 必备 软件 下载[原创]_常用工具_脚本之家
- BAT批处理实现软件的自动安装(以搜狗拼音为例)
- nw.js实现类似微信的聊天软件
- 采用C#实现软件自动更新的方法
- C#判断某个软件是否已安装实现代码分享
- IIS 防盗链 软件
- asp文件用什么软件编辑
- android判断软件是否第一次运行的方法
- Python实现的二维码生成小软件
- 软件、服务、进程、端口关系
- 【转】对软件产品化的理解
- oKit6.0震撼发布,全面开启自定义模式
- System Silencer – 离开时 让电脑自动开始任务
- 月光微博客
- 月光微博客