linux-rpm 打包之helloworld

转载 2013年12月04日 15:29:08

关于linux下rpm打包的一个小例子,称为helloworld吧。

本文受 这个同志启发 : http://www.worldhello.net/2011/04/02/2405.html :此处致敬~

另外,本文会不断修改

 

一、rpm打包准备工作

  • rpm打包需要一个独立的打包目录

            目录结构:

            BUILD, BUILDROOT, RPMS, SOURCES, SPECS, SRPMS

           创建该目录命令: mkdir -pv ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS},其中,这些目录放在rpmbuild目录下。

  • 接下来需要对rpm进行配置

              echo ~/rpmbuild > ~/.rpmmacros,该命令将"~/rpmbuild"作为rpm打包目录

二、打包过程

         打包helloworld需要程序sources文件,spec文件

  • 编写helloworld源文件(hello.c)

             

  1. #include <stdio.h>  
  2. int main()  
  3. {  
  4.     printf("Hello, World!\n");  
  5.     return 0;  
  6. }  
  • 编写helloworld的spec文件(hello.spec)
  1. BuildRoot:  %{_tmppath}/%{name}-%{version}-%{release}-root  
  2. # 不明白这样定义啥意思  
  3. Summary:    hello world rpm package  
  4. Name:       hello  
  5. Version:    0.1  
  6. Release:    1  
  7. Source:     hello-0.1.tar.gz  
  8. License:    GPL  
  9. Packager:   wangdonglei  
  10. Group:      Application  
  11.   
  12. %description  
  13. This is a simple example for rpm package!  
  14.   
  15. %prep  
  16. %setup -q  
  17.   
  18. %build  
  19. gcc -o hello hello.c  
  20.   
  21. %install  
  22.   
  23. mkdir -p %{buildroot}/usr/local/bin  
  24. install -m 755 hello %{buildroot}/usr/local/bin/hello  
  25.   
  26. %files  
  27. # 这里的路径是在buildroot虚拟根基础上的,即%{buildroot}/%{name}-%{version}-%{release}-root/usr/local/bin/hello  
  28. /usr/local/bin/hello    
  • 将文件放入相应位置并执行打包命令
  1. # 将hello.c放入目录hello-0.1并打包该目录  
  2. tar zcvf hello-0.1.tar.gz hello-0.1  
  3. # 将hello-0.1.tar.gz 放入SOURCES下  
  4. mv hello-0.1.tar.gz /root/rpmbuild/SOURCES  


             打包

  1. rpm -ba rpmbuild/SPECS/hello.spec  
  • 打包后文件

             执行打包命令后,这时会逐个运行hello.spec文件的内容,最终生成两个文件,一个包含源码的rpm包和一个二进制rpm包。

            rpmbuild/SRPMS/hello-0.1-1.src.rpm
            rpmbuild/RPMS/i386/hello-0.1-1.i386.rpm

相关文章推荐

linux-RPM 打包原理 SPEC 编写规范

一、编写spec脚本 由前面的日志了解到,生成rpm除了源码外,最重要的就是懂得编写.spec脚本。rpm建包的原理其实并不复杂,可以理解为按照标准的格式整理一些信息,包括:软件基础信息,以及安装、卸...
  • wf1982
  • wf1982
  • 2011-07-18 18:17
  • 4621

linux RPM 打包

RPM 做什么 我们先来看看在您运行 rpmbuild -ba filename.spec 时,RPM 都 做些什么: 读取并解析 filename.spec 文件...

用 RPM 打包软件 第 3 部分

内容来自:http://www.ibm.com/developerworks/cn/linux/management/package/rpm/part3/ 当在用户机器上安装或卸载程序时,能够执...

openstack RPM打包

背景: 常见的Linux发行版主要可以分为两类,类ReadHat系列和类Debian系列,这里我们是以其软件包的格式来划分的,这两类系统分别提供了自己的软件包管理系统和相应的工具。类RedHat...

Yum离线安装(一) --- RPM 打包技术与典型 SPEC 文件分析

一、介绍 RPM全称是 Red Hat Package Manager(Red Hat包管理器)。几乎所有的 Linux 发行版本都使用这种形式的软件包管理安装、更新和卸载软件。 RP...

利用rpmbuild打包定制属于你自己的RPM包

好久没自己写技术日志了,最近在研究rpm打包. 今天把它分享出来哈~~ rpm的优势就是安装和后期升级方便快捷,无需再次手动编译源代码。节省很多时间。. 这里已Nginx 服务器安装包为实例进行试验....
  • blscok
  • blscok
  • 2014-05-29 12:24
  • 1002

RPM打包技术与典型SPEC文件分析

本文分为两部分,第一部分阐述了 rpm 工具的功能以及 rpmbuild 工具,详细的介绍了 spec文件的书写规则以及关键部分,第二部分对一个典型的 spec 文件做了详细的分析。   为了方...

nginx打包rpm

安装rpmbuild,生成目录,编写spec文件 附上自己写的nginx.spec文件。 由于公司需要,nginx需要添加lua等依赖包,就自己通过编译过程打包了rpm。红色部分是根据编译的结果添加上...
  • U___p
  • U___p
  • 2014-08-05 10:55
  • 1146

用 RPM 打包软件 第 2 部分

内容来自:http://www.ibm.com/developerworks/cn/linux/management/package/rpm/part2/index.html 如果您没有...

rpm 打包原理

rpm打包原理zz 为什么要打包? 制作 rpm 不仅仅是打包,更可以解决菜单创建、打补钉、完成大量预配置、与其他软件包互动等操作。使用源代码安装要求用户了解基本的编译过程、能...
  • taget
  • taget
  • 2013-01-11 14:28
  • 3899
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)