CentOS下关于源码打包成rpm安装包

前端之家收集整理的这篇文章主要介绍了CentOS下关于源码打包成rpm安装包前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

CentOS下关于源码打包成rpm安装包


@H_301_4@

平台:centos6.5@H_301_4@

首先是搭建环境:@H_301_4@

[cpp]view plaincopyprint?@H_301_4@

  1. [root@localhostbinbin]#yuminstall-yrpm-build</span>@H_301_4@

[cpp]view plaincopyprint?@H_301_4@

  1. [root@localhostbinbin]#yuminstallredhat-rpm-config@H_301_4@

之后会在/root目录下有一个rpmbuild目录@H_301_4@

[cpp]view plaincopyprint?@H_301_4@

  1. [root@localhostrpmbuild]#pwd@H_301_4@

  2. /root/rpmbuild</span>@H_301_4@

进入该目录,里面有五个文件夹分别是BUILD BUILDROOT RPMS SOURCES SPECS SRPMS
刚开始时都是空的
[html]view plaincopyprint?@H_301_4@

  1. [root@localhostrpmbuild]#ls@H_301_4@

  2. BUILDBUILDROOTRPMSSOURCESSPECSSRPMS@H_301_4@


如果没有这几个目录可以手动添加创建


这六个目录的作用分别是:
BUILD :rpmbuild编译软件的目录
BUILDROOT :
RPMS :rpmbuild创建binary RPM 所存放的目录
SOURCES :存放源代码的目录
SPECS :存放spec文件的目录
SRPMS :rpmbuild创建souce RPM 所存放的目录

首先是将放置有源码的文件夹进行打包。此处我的文件夹起名为login-1.0
[cpp]view plaincopyprint?@H_301_4@

  1. [root@localhostbinbin]#tarzcvflogin-1.0.tar.gzlogin-1.0@H_301_4@

  2. [root@localhostbinbin]#ls@H_301_4@

  3. login-1.0.tar.gzlogin-1.0@H_301_4@


将login-1.0.tar.gz拷贝至rpmbuild/SOUCES目录下
[html]view plaincopyprint?@H_301_4@

  1. [root@localhostbinbin]#cplogin-1.0.tar.gz/root/rpmbuild/SOURCES@H_301_4@

  2. [root@localhostSOURCES]#ls@H_301_4@

  3. login-1.0.tar.gz@H_301_4@



此时进入SPEC目录,编写SPEC文件(此步是打包rpm包的关键一步)
[html]view plaincopyprint?@H_301_4@

  1. [root@localhostSOURCES]#cd../SPECS@H_301_4@

  2. [root@localhostSPECS]#touchlogin.spec@H_301_4@

  3. [root@localhostSPECS]#ls@H_301_4@

  4. login.spec@H_301_4@

  5. [root@localhostSPECS]#vimlogin.spec@H_301_4@


[html]view plaincopyprint?@H_301_4@

  1. #名字@H_301_4@

  2. Name:login@H_301_4@

  3. #版本号@H_301_4@

  4. Version:1.0@H_301_4@

  5. #编译的次序@H_301_4@

  6. Release:1@H_301_4@

  7. #一句话介绍包(不超过50个字符)@H_301_4@

  8. Summary:istest@H_301_4@

  9. Group:Applications/Communications@H_301_4@

  10. License:GPL@H_301_4@

  11. URL:www.ciis.com@H_301_4@

  12. #要安装的压缩包源文件@H_301_4@

  13. Source:login-1.0.tar.gz@H_301_4@


  14. @H_301_4@

  15. BuildRoot:%{_tmppath}/%{name}-%{version}-root@H_301_4@

  16. %description@H_301_4@

  17. atest@H_301_4@

  18. #构建包前的处理@H_301_4@

  19. %prep@H_301_4@


  20. @H_301_4@


  21. @H_301_4@

  22. #--解压:这里主要是构建的时候解压缩源码到系统目录,这里是$RPM_BUILD_DIR@H_301_4@

  23. #setup-c解压的时候会生成一个和压缩包同名的新目录;setup-ndirname指定一个新的目录以解压缩setup-q直接解压,不产生新的目录@H_301_4@

  24. %setup-q@H_301_4@


  25. @H_301_4@


  26. @H_301_4@

  27. #--生成:这里主要是构建二进制包的的时候执行编译生成二进制文件@H_301_4@

  28. %build@H_301_4@

  29. make@H_301_4@


  30. @H_301_4@


  31. @H_301_4@

  32. #--安装:构建的时候把当前文件安装到系统目录$RPM_BUILD_ROOT/下,二进制安装的时候是安装文件到/根目录下@H_301_4@

  33. %install@H_301_4@


  34. @H_301_4@


  35. @H_301_4@

  36. #makeinstall#使用makefile的install,方便@H_301_4@

  37. #没有makefile,自定义安装脚本@H_301_4@

  38. rm-rf$RPM_BUILD_ROOT/*@H_301_4@

  39. mkdir-p$RPM_BUILD_ROOT/usr/bin/@H_301_4@

  40. cp-r$RPM_BUILD_DIR/%{name}-%{version}$RPM_BUILD_ROOT/usr/bin/@H_301_4@


  41. @H_301_4@


  42. @H_301_4@

  43. #安装完成后续:二进制包安装后的处理脚本@H_301_4@

  44. %post@H_301_4@

  45. chmod+x/usr/bin/%{name}-%{version}/confAgent@H_301_4@

  46. chmod+x/usr/bin/%{name}-%{version}/check_confAgent.sh@H_301_4@


  47. @H_301_4@


  48. @H_301_4@

  49. #卸载完成后续:二进制包卸载完成后的处理脚本@H_301_4@

  50. %postun@H_301_4@

  51. rm-fr/usr/bin/%{name}-%{version}@H_301_4@


  52. @H_301_4@


  53. @H_301_4@

  54. #清理:构建包完成后处理@H_301_4@

  55. %clean@H_301_4@

  56. rm-rf$RPM_BUILD_ROOT@H_301_4@


  57. @H_301_4@


  58. @H_301_4@

  59. #文件列表:指示哪些文件应该被安装到系统中以及安装的目录;@H_301_4@

  60. #构建包时,文件列表的文件或目录必须和虚拟目录RPM_BUILD_ROOT中的文件或目录一致,否则构建时会@H_301_4@

  61. #提示找不到文件@H_301_4@

  62. %files@H_301_4@

  63. %defattr(-,root,root)@H_301_4@

  64. /usr/bin/%{name}-%{version}@H_301_4@


  65. @H_301_4@


  66. @H_301_4@

  67. %changelog@H_301_4@



保存退出,执行打包命令
[html]view plaincopyprint?@H_301_4@

  1. [root@localhostSPECS]#rpmbuild-balogin.spec</span>@H_301_4@


之后会在RPMS/i686目录下有相应的rpm包,这里是login-1.0-1.i686.rpm
[html]view plaincopyprint?@H_301_4@

  1. [root@localhostSPECS]#cd../RPMS/i686@H_301_4@

  2. [root@localhosti686]#pwd@H_301_4@

  3. /root/rpmbuild/RPMS/i686@H_301_4@

  4. [root@localhosti686]#ls@H_301_4@

  5. login-1.0-1.i686.rpm@H_301_4@



测试安装
[html]view plaincopyprint?@H_301_4@

  1. [root@localhostbinbin]#ls@H_301_4@

  2. login-1.0-1.i686.rpm@H_301_4@

  3. [root@localhostbinbin]#rpm-ivhlogin-1.0-1.i686.rpm@H_301_4@

  4. [root@localhostbinbin]#/usr/bin/login-1.0/demo@H_301_4@

即可运行客户端@H_301_4@ 原文链接:https://www.f2er.com/centos/382213.html

猜你在找的CentOS相关文章