내가 원하는 프로그램을 찾다 보면 바이너리(binary) rpm이 없이 소스(source) rpm만 있는 경우가 있습니다.
주로 최신 프로그램인 경우가 많은데 바이너리 rpm이 나오기 전에 소스 rpm이 나오는게 통상적인 순서입니다.

소스 rpm이라고 해서 특별한 것은 아니고 단지 컴파일 과정을 한번 더 거쳐 바이너리 rpm을 만들게 됩니다.
만들어진 바이너리 rpm을 다시 수세에 설치해야 프로그램 설치가 끝나게 됩니다.

조금 복잡한 과정을 거치게 되지만 자신의 컴퓨터에 최적화된 rpm을 만들 수 있는 장점도 있습니다.


SuperKaramba를 예로 들어 설치해 보겠습니다.
http://rpm.pbone.net/ 에서 검색을 해 보면 수세용 소스 rpm을 다운받을 수 있습니다.

우선 콘솔을 열어 관리자 모드로 로그인합니다.

> su
password:******

#

이제 소스 rpm을 컴파일 합니다.

# rpmbuild --clean --rebuild superkaramba-0.39-2.guru.suse102.src.rpm

혹시 의존성이 걸려 있다면 필요한 패키지가 출력되면서 컴파일이 중단됩니다.
이 경우 필요한 패키지를 다운받아 설치한 후 다시 컴파일 해 주어야 합니다.

컴파일이 성공하면 /usr/src/packages/RPMS 에 자신의 머신에 맞는 폴더에 바이너리 rpm이 생성됩니다.

보통 i586이나 i686 디렉토리에 생성됩니다.


특정 플렛폼에 맞는 rpm을 만들고 싶다면 --target <PLATFORM> 옵션을 추가하면 됩니다.
<PLATFORM>은 i386, i486, i586, i686, athlon, noarch 중 하나를 선택하면 됩니다.

athlon은 64비트 컴파일시 사용됩니다.
AMD의 최초의 x86용 64비트 CPU의 코드명입니다. 

noarch는 플렛폼에 무관한 rpm을 생성합니다.
noarch는 주로 데이타 rpm에 사용되며 실행프로그램이라면 ix86이나 athlon을 선택하면 됩니다.

예를 들어 SuperKaramba를 486용으로 컴파일하고 싶다면 다음과 같이 표현할 수 있습니다.

# rpmbuild --clean --rebuild --target i486 superkaramba-0.39-2.guru.suse102.src.rpm

그러면 /usr/src/packages/RPMS/i486 디렉토리에 바이너리 rpm이 생성됩니다.


주의할 점은 자신의 머신과 같거나 아래의 플렛폼으로 컴파일 해야 사용할 수 있다는 겁니다.
자신의 머신이 무엇인지 알고 싶다면 다음을 이용하시면 됩니다.

# uname -m
i686


이렇게 생성된 바이너리 rpm은 다른 rpm과 똑같이 YaST를 이용해 바로 설치할 수 있습니다.

자 따끈따끈한 소스 rpm이 아직도 많으니 도전해 보세요 !!!


출처 - http://www.suse.or.kr/bbs/board.php?bo_table=tip&wr_id=2034&page=7



'System > Linux' 카테고리의 다른 글

debian/ubuntu - iptables 저장 및 restore  (0) 2012.09.01
linux - iptables 설정  (0) 2012.09.01
linux - multitail  (0) 2012.08.23
linux - tar를 이용한 대용량 파일 이동  (2) 2012.08.06
linux - bash  (0) 2012.07.24
Posted by linuxism
,