在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!\n");  
    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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM