2018년 2월 4일 일요일

ANT red-line 플러그인을 이용한 리눅스 RPM패키지 빌드

[JAVA로 작성된 어플리케이션을 RPM으로 배포할 경우 ANT의 RPM 패키징 태스크를 이용하여 빌드 하는 법]
어플리케이션을 RPM패키지로 배포해야되는 경우 linux의 rpmbuild를 이용하여 패키징 시 몇가지 문제점이 발생함.
(한가지 예로 CentOS 6.xx에서 빌드한 RPM패키지의 경우 CentOS 5.xx 에서 설치가 않되는 경우 발생)
이럴 경우 Pure 자바로 작성된 RPM패키지 라이브러리를 사용해보잣~
몇가지 형태로 사용가능하나 여기서는 ANT의 Task로 등록하여 사용하는 방법으로 구현.


RedLine 라이브러리 다운로드하자.
http://redline-rpm.org/usage.html

이클립스 플러그인 설정 및 테스트
1. jar 라이브러리 ecilpse의 plugin 폴더에 복사
2. Preperence > Ant > Runtime 메뉴에서 Classpath > Contributed Entries로 등록

ANT의 build.xml 파일 작성
<project basedir="." xmlns:redline="antlib:org.redline_rpm">
<target name="rpm">
<mkdir dir="dist"/>
<redline:rpm group="Java Development" name="Application.rpm" version="" destination="dist">
<!-- executable jar file -->
<zipfileset prefix="/usr/local/application" file="./Application.jar"/>
<!-- additional config file -->
<rpmfileset prefix="/usr/local/application" file="./config.xml" config="true" noreplace="false" filemode="755" username="root" group="root"/>
<rpmfileset prefix="/teralog/agent" file="./log4j.properties" config="true" noreplace="false" filemode="755" username="root" group="root"/>
<!-- registers init start,stop script -->
<rpmfileset prefix="/etc/rc.d/init.d" file="./GSCDN_TOTMN_AGENT.sh" filemode="755" username="root" group="root"/>
<link path="/etc/rc.d/rc3.d/K02[APPLICATION].sh" target="/etc/rc.d/init.d/[APPLICATION].sh"/>
<link path="/etc/rc.d/rc3.d/S50[APPLICATION].sh" target="/etc/rc.d/init.d/[APPLICATION].sh"/>
</redline:rpm>
<move file="./dist/GSCDN_TOTMN_AGENT--1.noarch.rpm" tofile="./dist/GSCDN_TOTMN_AGENT-linux.rpm"/>
</target>
</project>

댓글 없음:

댓글 쓰기

Creating CRC32 Hex string

public String getCRC32HexaString(String paramString) throws Exception  {   byte bytes[] = paramString.getBytes(DEFAULT_CHARSET);   Che...