自己动手做的一个rpm包(分享)
2013-04-11 12:43
573 查看
1, linux软件管理氛围:
(ア) RPM打包方式
① Yum工具是采用这种打包方式;
② 操作系统:Redhat,Fedara,CentOS。
(イ) DEBIAN打包方式
① Apt-get工具是采用这种打包方式;
② 操作系统:Ubantu
比较之后RPM打包比较容易,网络上参考的资料较多。比较倾向采用此打包方式
2, RPM包的***:
(ア) 需要一些工具,参考网络。(可以用yum去安装,eg:yum installrpm-build)
(イ) RPM有五个文件夹是必须的。应该是系统默认的,一般在Redhat的/usr/src/redhat下有BUILD,RPMS,SOURCES,SPECS,SRPMS五个文件夹。我的默认的目录是在/root/rpmbuild
(ウ)
① 五个文件夹的作用参照网络。其中SOURCES目录中放我们的压缩文件(eg:我这里的实例的话放置的是1.tar.gz压缩文件)
② SPECS目录里存放.spec脚本,这个脚本是核心,记录rpm的安装方式。
③ BUILDROOT目录是在***打包的过程中生成。这个目录很重要。相当于是一个虚拟的目录。下面的实例中会说明的。
④ 实例:more 1.l #生成一个文件
⑤ tar zxvf 1.l 1.tar.gz #压缩文件
⑥ cp 1.tar.gz /root/rpmbuild/SOURCES #拷贝到指定文件夹
⑦ cd /root/rpmbuild/SPECS
vi1.spec
⑤ 以下是1.spec的内容
#
# Examplespec file for nginx
#
Summary: highperformance web server
Name: 1
Version: 1
Release: 1.0
License:2-clause BSD-like license
Group:Applications/Server
Source: 1.tar.gz
URL: 1.tar.gz
Distribution:Linux
Packager:zhumaohai <admin@www.centos.bz>
%description
nginx [enginex] is a HTTP and reverse proxy server, as well as
a mail proxyserver
%prep
rm -rf$RPM_BUILD_DIR/1.tar.gz
zcat$RPM_SOURCE_DIR/1.tar.gz | tar -xvf -
echo"---------------------------"
mkdir $RPM_BUILD_ROOT[11] /home/zl[12] -p
%build
%install
install -m 755 1.l $RPM_BUILD_ROOT/home/zl[13]
%preun
if [ -z"`ps aux | grep nginx | grep -v grep`" ];then
killall nginx>/dev/null
exit 0
fi
%files
/home/zl/1.l
(エ) ***rpm的命令:rpmbuild –ba 1.spec
生成的rpm包放在RPMS这个目录中
(オ) 安装包得命令:rpm –ivh 1-1-1.0.i386.rpm
卸载的命令:rpm –e 1
[11]这个就是上面所言的BUILDROOT目录。
在打包的时候,它就相当于是系统的根目录。因为要把1.l安装在/home/zl目录下,所以,我的虚拟安装目录也应该有这个目录,否则会报错。
[12]我想把1.l安装在/home/zl目录下。你可以换一个
[13]安装在哪里
相关文章推荐
- 自己最近做的一个关于自动进入飞行模式的经验分享
- 分享自己写的一个简化版LOG输出宏
- 分享一下自己动手做出来的后台权限管理系统
- 分享一个自己做的SpringMVC的PPT
- 自己动手做一个小型“资源管理器”吧
- 一个自己编写的象棋程序,可实现走棋谱(如炮二平五),工程完成度%96,跟大家分享一下,下一步要做残局,欢迎交流
- 分享一个强大的工具,可以快速查看自己公司网站或竞争对手网站的CDN情况
- 分享一个自己做的用于文本插入的jquery插件
- 分享一个自己修改的vs皮肤
- 自己写的一个分享按钮的插件(可扩展,内附开发制作流程)
- 分享一个自己写的py扫描路径工具
- 我的Android笔记(六)——分享一个自己的NumberPicker
- 分享自己写的一个找CALL练习软件
- 自己动手做一个Mini Linux
- 我的Android笔记(十二)——分享一个自己写的cnBeta客户端源码
- 自己封装的一个JS分享组件
- 分享一个自己应用中判断应用运行状态是前台还是后台
- RPG/400 自己写的一个小实例分享!(1)
- 分享一个自己写的选项空间。。。。暂时只支持二级联动。。wtl。最近在学wtl就写写了。。
- [深度好文]想成为一个高效的Web开发者吗?来看看大牛分享的经验吧~外加一些自己的理解