zoukankan      html  css  js  c++  java
  • 在Linux下通过rpm打包发布Java程序

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

    一个简单的例子

    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!
    ");  
        return 0;  
    }

    (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

  • 相关阅读:
    《运营笔记》:主要是猫扑论坛运营经验。3星。
    《澄明之境》:二十年期货交易员的经验:投资没有圣杯,控制风险,在市场阶梯式上升过程中赚钱。3星
    《好好说话》:常见沟通场景的应对误区与应答思路、应答句式。4星。
    《尖叫感》:是近20-30年来尤其是近3-5年来的优秀广告文案的整理汇编。3星
    《石油,用得完吗》:石油会比较缓慢地被替代。3星
    Discuz常见大问题-如何自定义单个页面
    Discuz常见大问题-如何DIY一个独立页面
    Discuz常见大问题-如何使用云采集插件
    Discuz常见大问题-如何使用图片轮播器
    Discuz常见大问题-如何在自定义页面使用首页四格
  • 原文地址:https://www.cnblogs.com/studyLog-share/p/4647898.html
Copyright © 2011-2022 走看看