Linux ETC

source rpm 을 사용하여 rpm 패키지 만들기

2008.05.28 20:00

jook 조회 수:34275

redhat 7.3 이나 redhat9 등과 같은 예전 OS를 사용할 경우 fedora 나 cent 등에서 새롭게 제공되는 프로그램은 해당 OS에 맞는 rpm 패키지가 제공되지 않기 때문에 상위 레벨의 rpm 패키지를 설치할 경우, 의존성 에러가 나는 경우가 많다.
이런 경우는 source로 컴파일해서 설치를 해야 하는데, source rpm 패키지를 사용하면 쉽게 설치할 수가 있다.

redhat7.3 OS에서 기본으로 제공되지 않는 fping 이라는 프로그램을 source rpm을 이용해서 설치해 보도록 하겠다.


1. http://rpmfind.net 에서 fping 패키지를 검색하여 fping-2.4b2-8.fc9.src.rpm 파일을 다운 받는다.

[root@localhost root]# cd /usr/local/src/
[root@localhost src]# ls
httpd-2.2.0  mysql-5.0.18  php-5.1.2
[root@localhost src]# wget ftp://rpmfind.net/linux/fedora/development/source/SRPMS/fping-2.4b2-8.fc9.src.rpm
--10:40:00--  ftp://rpmfind.net/linux/fedora/development/source/SRPMS/fping-2.4b2-8.fc9.src.rpm
           => `fping-2.4b2-8.fc9.src.rpm'
Resolving rpmfind.net... 완료.
Connecting to rpmfind.net[194.199.20.114]:21... connected.
anonymous로서 로그인하고 있습니다...로그인 했습니다!
==> SYST ... 완료.    ==> PWD ... 완료.
==> TYPE I ... 완료.  ==> CWD /linux/fedora/development/source/SRPMS ... 완료.
==> PORT ... 완료.    ==> RETR fping-2.4b2-8.fc9.src.rpm ... 완료.
길이: 69,108 (unauthoritative)

100%[======================================================================================================>] 69,108        41.40K/s    ETA 00:00

10:40:08 (41.40 KB/s) - `fping-2.4b2-8.fc9.src.rpm'가 보존되었습니다 [69108]

[root@localhost src]#


2. rpmbuild 명령으로 OS에 맞는 rpm 패키지를 새로 만든다.

[root@localhost src]# rpmbuild --rebuild fping-2.4b2-8.fc9.src.rpm
fping-2.4b2-8.fc9.src.rpm(을)를 설치합니다
실행 중(%prep): /bin/sh -e /var/tmp/rpm-tmp.79189
+ umask 022
+ cd /usr/src/redhat/BUILD
+ cd /usr/src/redhat/BUILD
+ rm -rf fping-2.4b2_to-ipv6
+ /bin/gzip -dc /usr/src/redhat/SOURCES/fping-2.4b2_to-ipv6.tar.gz

  ~ ~ ~ ~ ~  (컴파일 과정 중간 생략)

Provides(을)를 찾는 중: (/usr/lib/rpm/find-provides 사용)...
Requires(을)를 찾는 중: (/usr/lib/rpm/find-requires 사용)...
PreReq: rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1
Requires(rpmlib): rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1
Requires: ld-linux.so.2 libc.so.6 libc.so.6(GLIBC_2.0) libc.so.6(GLIBC_2.1)
작성: /usr/src/redhat/RPMS/i386/fping-2.4b2-8.i386.rpm
실행 중(%clean): /bin/sh -e /var/tmp/rpm-tmp.91267
+ umask 022
+ cd /usr/src/redhat/BUILD
+ cd fping-2.4b2_to-ipv6
+ rm -rf /var/tmp/fping-2.4b2-8-root-root
+ exit 0
실행 중(--clean): /bin/sh -e /var/tmp/rpm-tmp.91267
+ umask 022
+ cd /usr/src/redhat/BUILD
+ rm -rf fping-2.4b2_to-ipv6
+ exit 0
[root@localhost src]#


3. 새로 생성된 rpm 패키지를 설치 한다. (새로 생성된 패키지는 /usr/src/redhat/RPMS/i386 디렉토리에 위치 한다.)

[root@localhost src]# cd /usr/src/redhat/RPMS/i386/
[root@localhost i386]# ls
fping-2.4b2-8.i386.rpm
[root@localhost i386]# rpm -Uvh fping-2.4b2-8.i386.rpm
준비 중...                  ########################################### [100%]
   1:fping                  ########################################### [100%]
[root@localhost i386]#
[root@localhost i386]# which fping          <--- fping 패키지가 설치 완료되어 fping 명령을 사용할 수 있다.
/usr/sbin/fping


번호 제목 글쓴이 날짜 조회 수
46 리눅스에서 NTFS 읽고 쓰기 호스트웨이 2009.04.18 32284
45 도메인 / IP 정보 조회 방법 및 사이트 Namlyong 2010.01.13 32286
44 yum 으로 패키지그룹 관리하기 jook 2009.04.22 32422
43 Privilege separation user sshd does not exist 메세지 sylee 2008.06.04 32429
42 현재 설치된 메모리 정보를 확인하는 방법 호스트웨이 2012.03.30 32474
41 SELinux 제어 방법 호스트웨이 2008.05.19 32677
40 리눅스에서 fstab을 UUID로 변경 호스트웨이 2012.08.23 32944
39 리눅스에서 fuser 명령어 사용하기 호스트웨이 2012.06.15 33500
38 데비안 기본 라이브러리 설치 호스트웨이 2008.06.03 33514
37 Fedora8, 9 버전에서 setup -> Network configuration 메뉴가 동작하지 않을때 jook 2008.07.23 34118
» source rpm 을 사용하여 rpm 패키지 만들기 jook 2008.05.28 34275
35 multitail (다수의 파일을 tail 로 볼 수 있습니다.) HOSTWAY 2008.12.04 34475
34 shell 접속은 차단하고 ftp접속만 허용하기 sylee 2008.05.20 34493
33 리눅스 원격 접속자 세션 종료 file 호스트웨이 2012.06.08 34938
32 apt-get 간단 사용 방법 jook 2008.12.11 35261
31 parted를 이용한 2TB 이상의 partitioning file 호스트웨이 2012.05.05 35708
30 yum repository 국내 mirror 설정 file 호스트웨이 2012.03.23 36906
29 커널 파라미터 제어 호스트웨이 2008.06.25 36965
28 VNC rpm 설치해보기 sylee 2008.08.07 37739
27 yum 사용 팁 jook 2008.09.02 38918