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

Eclipse中创建Maven工程并打包(HelloWorld)

1. 创建Maven工程(以HelloWorld工程为例 2. 打包 重点来说下打包的步骤: 1.Eclipse中安装了Maven插件以后,需要进行进行配置。    http://jingyan....
  • AKAK714
  • AKAK714
  • 2015年09月14日 10:22
  • 1245

Maven学习笔记(八)Maven的入门使用—4. 打包和运行

将项目进行编译、测试之后,下一个重要的步骤就是打包(package)。HelloWorld的POM中没有指定打包类型,使用默认打包类型jar。简单的执行下面命令: mvn clean package ...
  • xvjianzhe
  • xvjianzhe
  • 2015年02月07日 23:21
  • 567

java中HelloWorld原来还可以这样玩

大家可能看到HelloWorld例子是不是都觉得博主脑子是不是有问题,怎么拿这么一个弱智的问题和例子拿来讲。实际上并不是这样的,如果是这样的我相信我就没有写这篇博客意思了。因为当我第一次看到java中...
  • u013064109
  • u013064109
  • 2016年06月27日 17:02
  • 2621

Spring笔记之一 -- 简单入门讲解HelloWorld

1、 Spring基本特征
  • shehun11
  • shehun11
  • 2014年08月01日 23:42
  • 489

maven打war包和在tomcat中发布

1)前面讲了maven的安装和maven和eclipse
  • anhuixiaozi
  • anhuixiaozi
  • 2014年08月11日 10:46
  • 3726

Android新手入门2016(1)--创建和运行helloworld

我是新手,但不是第一次接触了。陆陆续续做了一些东西,还写过一些小游戏。不过都是直接用cocos2d-x的多。 从现在起开始学习学习吧。不为什么,因为穷!!! 之前本来带过一个手游项目,其实还没立项,就...
  • u012175089
  • u012175089
  • 2016年03月04日 18:23
  • 2881

python初步(打印HelloWorld!)

1. 新建一个项目,选择安装的解释器2. 新建一个python文件在项目中右键new一个新的python文件。 3. 编写代码4. 配置运行点击【run】-> 【Edit Configuratio...
  • hyj2568259226
  • hyj2568259226
  • 2016年08月17日 22:11
  • 774

使用记事本开发JAVA(HelloWorld)

操作之前我先介绍一下Java吧
  • pengGeiii
  • pengGeiii
  • 2014年07月01日 22:09
  • 660

2-创建第一个QT程序——helloworld

1.首先新建项目,或者快捷方式ctrl+N 2.然后按上述choose。 接下来弹出项目介绍和位置 3.输入类信息: 在“类信息”界面中创建一个自定义类。这里的是默认的类名Mai...
  • a3631568
  • a3631568
  • 2016年12月16日 18:16
  • 1119

Linux-rpm命令管理介绍

rpm命令管理大纲 rpm包的命令规则 安装 升级与卸载 查询 校验 rpm包命名规则 MySQL-server-5.6.16-1.rhel5.x86...
  • u011479200
  • u011479200
  • 2017年05月30日 15:20
  • 713
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux-rpm 打包之helloworld
举报原因:
原因补充:

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