这个东西涉及的内容较多,根据下面这些文章慢慢学习

一个简单的例子

http://blog.csdn.net/king_on/article/details/7169384

按照文章中的步骤来,打包之后,使用rpm进行安装,在终端输入hello,终端会输出一些信息

此处先摘抄上述作者的文章,后期会结合使用过程进行修改,打包过程如下:

步骤一:准备工作

(1)rpm打包需要特定的目录,创建该目录的命令如下:

mkdir -pv ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}

(2)接下来需要对rpm进行配置,命令如下:

echo ~/rpmbuild > ~/.rpmmacros

该命令将"~/rpmbuild"作为rpm打包目录

步骤二:准备程序源代码文件以及spec文件

(1)新建程序源代码文件(文件名为:hello.c)

#include <stdio.h>
int main()
{
printf("Hello, World!\n");
return ;
}

(2)新建.spec文件(文件名为:hello.spec)

BuildRoot:  %{_tmppath}/%{name}-%{version}-%{release}-root
# 不明白这样定义啥意思
Summary: hello world rpm package
Name: hello
Version: 0.1
Release: 1
Source: hello-0.1.tar.gz
License: GPL
Packager: wangdonglei
Group: Application %description
This is a simple example for rpm package! %prep
%setup -q %build
gcc -o hello hello.c %install mkdir -p %{buildroot}/usr/local/bin
install -m 755 hello %{buildroot}/usr/local/bin/hello %files
# 这里的路径是在buildroot虚拟根基础上的,即%{buildroot}/%{name}-%{version}-%{release}-root/usr/local/bin/hello
/usr/local/bin/hello

(3)通过下面的命令将程序源代码文件以及.spec文件放入相应位置

# 将hello.c放入目录hello-0.1并打包该目录
tar zcvf hello-0.1.tar.gz hello-0.1
# 将hello-0.1.tar.gz 放入SOURCES下
mv hello-0.1.tar.gz /root/rpmbuild/SOURCES

(4)打包

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

这个案例虽然是针对C/C++的,但是打包java程序的思路是一样

【未完待续】

============此处贴一些当时看过的相关文章,后面有时间了我再整理当时自己的实现过程===========

一些命令

http://www.worldhello.net/2011/04/02/2405.html

上文提供了一些命令来查看系统默认的打包目录,介绍了如何自定义打包目录等 ,通过这篇文章,对rpm打包的理解会更深入一些

rpm简单介绍

http://blog.chinaunix.net/uid-7530389-id-2050100.html

%install部分使用的是绝对路径,而%file部分使用则是相对路径,虽然其描述的是同一个地方

系统中的一些信息

/usr/lib/rpm/marcros,通过cat命令查看

简单介绍

http://blog.sina.com.cn/s/blog_5d867af101019b7i.html

明白可通过不同方式构建rpm包,目前只关注从spec文档建包

rpmbuild命令的基本格式:rpmbuild [options] [spec文档|tarball包|源码包]

RPM的一些用法:

查询功能:

1、对系统中已经安装的软件查询:rpm -q softwarename

2、查询系统中已安装的包:rpm -qa [softwarename]

3、查询已安装软件包都安装到何处:rpm -ql softwarename

安装,删除 rpm -ivh softwarename.rpm rpm -e softwarename

其余更多的用法参照man rpm

更多rpm相关命令

http://blog.csdn.net/taiyang1987912/article/details/40145101

在Linux下通过rpm打包发布Java程序的更多相关文章

  1. 如何在linux下安装jdk并运行java程序

    一.进入root 大家可以看到我这里用的是CentOS 6.5 系统 二.测试网络与YUM是否可用 1.测试网络 ping www.baidu.com,如下图就是通了 参考: 一.JDK安装1.lin ...

  2. Linux 下报错:A Java RunTime Environment (JRE) or Java Development Kit (JDK) must解决方案

    一.报错环境:在Linux mint下,前几天还用得很好的的eclipse,今天开机不知为什么这样. Linux 下报错:A Java RunTime Environment (JRE) or Jav ...

  3. Linux下安装rpm出现error: Failed dependencies

    在Linux下安装rpm包时经常会遇到下面这个问题: error: Failed dependencies: xxxxxxxxxxxxxxxxxxxxxx 遇到此问题时可以在安装rpm包命令的后面加两 ...

  4. Linux下文件的打包、解压缩指令——tar,gzip,bzip2,unzip,rar

    本文是笔者对鸟叔的Linux私房菜(基础学习篇) 第三版(中文网站)中关于 Linux 环境下打包和解压缩指令的内容以及日常操作过程中所接触的相关指令的总结和记录,以供备忘和分享.更多详细信息可直接参 ...

  5. Linux下文件的打包、解压缩指令——tar,gzip,bzip2

    本文是对 鸟叔的Linux私房菜(基础学习篇) 第三版 的学习笔记,原文可参考原书中文网站 鸟叔的Linux私房菜.更多详细信息可直接参考对应Linux命令的 man 帮助( 如 man tar). ...

  6. Linux下 解包/打包 Android 映像文件 system.img, boot.img, ramdisk.img, userdata.img.

    Linux下 解包/打包 Android 映像文件 system.img, boot.img, ramdisk.img, userdata.img. 2014年10月20日 ⁄ 计算机视觉 ⁄ 共 1 ...

  7. linux下文件的打包和压缩

    文章来源:linux下文件的打包和压缩 目录 一.文件压缩的原理 二.linux常见的压缩指令 三.常用实例 1.tar命令 2.zip命令 3.gz命令 4.bz2命令 5.xz命令(必须分两步) ...

  8. 在Linux下下载RPM包

    在Linux下下载RPM包,但是不安装 在工作中经常会遇到离线安装RPM包的情况,下面是下载RPM包的方法 # 使用yum下载RPM包 yum -y install --downloadonly &l ...

  9. Linux下使用Eclipse开发Hadoop应用程序

    在前面一篇文章中介绍了如果在完全分布式的环境下搭建Hadoop0.20.2,现在就再利用这个环境完成开发. 首先用hadoop这个用户登录linux系统(hadoop用户在前面一篇文章中创建的),然后 ...

随机推荐

  1. 【[TJOI2017]城市】

    题目 好像\(noip\)之前做某雅礼的题的时候看到过这道题的数据范围增强版 当时那道题数据范围是\(3e5\)感觉神仙的一批 这道题数据范围\(5e3\)那岂不是可以\(O(n^2)\)水过 有一点 ...

  2. 将 form 参数转换为 json 绑定 datagrid 上

    $.fn.serializeJson=function(){ var serializeObj={}; var array=this.serializeArray(); var str=this.se ...

  3. cascade DecodeBBox层

    https://zhuanlan.zhihu.com/p/36095768 我的推断,第二第三阶段应该不是把所有anchor进行bounding box regression,然后再选取当前条件下的所 ...

  4. ssh公钥

    想要将本地电脑的文件传到github上,必须要通过建立本地电脑与github帐号的ssh公钥才行. 方式: 用命令ssh-keygen产生ssh公钥(之后一直按回车就好),然后cd到~/.ssh目录, ...

  5. DEM、DTM和DSM的区别

    一.DTM(Digital Terrain Model) 数字地面模型是利用一个任意坐标系中大量选择的已知x.y.z的坐标点对连续地面的一个简单的统计表示,或者说,DTM就是地形表面形态属性信息的数字 ...

  6. 用js写三级联动

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 【luogu P3807 卢卡斯定理】 模板

    题目链接:https://www.luogu.org/problemnew/show/P3807 Lucas定理用来求大组合数对一个质数取模的值,不大于10^5用逆元,大于10^5就用Lucas转化成 ...

  8. 如何配置Java环境变量

    百度经验 | 百度知道 | 百度首页 | 登录 | 注册 新闻 网页 贴吧 知道 经验 音乐 图片 视频 地图 百科 文库 帮助   发布经验 首页 分类 任务 回享 商城 特色 知道 百度经验 &g ...

  9. ssm整合实现注册与登录功能

    最简洁易懂的SSM整合源码都在这里了 激情提示: 1.本项目是用IDEA编写的,不管你是习惯何种ide工具,那也只是工具而已,源代码才是本质 2.本项目只拥有注册和登录功能,简易的功能和详细的注释,是 ...

  10. linux 2.6升级Python2.7 ./configure 报错问题

    升级2.7.3使用命令./configure --prefix=/usr/local/python2.7.3时,出现以下错误:checking build system type... x86_64- ...