RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR

출처 : 대전국제IT교육센터 정성재 강사

 

1. RPM이란?
(1) 개요 : RedHat Package Manager의 약어로 프로그램등을 설치할 때 사용하는 방법이며 Red Hat사
           에서 제안하였다. rpm은 유닉스계열의 일반적인 설치방법인 소스방법에 비해 쉬운 설치를
           지원하지만 설치되는 디렉토리의 변경이 불가능하다. 설치된 디렉토리나 실행명령 등은
           설치후 질의를 통해 확인해야 한다.
(2) 파일의 구조
   1) 기본구성
     패키지이름-버전-릴리즈.아키텍쳐.rpm
   2) 구성설명
    ㄱ. 패키지이름: 어떤 패키지인가를 설명해주는 패키지의 이름을 나타낸다.
    ㄴ. 버전: 패키지의 버전을 의미한다.
    ㄷ. 릴리즈: 한 버전의 패키지를 몇번 빌드했는지를 알려준다.
    ㄹ. 아키텍쳐: 어느 아키텍쳐에 사용가능한지를 알려준다. 패키지가 사용가능한 시스템을 말한
                 다.
        예) i386, i486, i586, i686: 인텔 x86 호환계열에 사용
            ia64: IA-64(Itanium)
            alpha: Digital 알파서버용
            ppc: 매킨토시 PowerPC용
            sparc: Sun Microsystem용
            s390: IBM s/390용
   3) 파일예
     XFree86-Mach64-3.3.6-20kr.i386.rpm
(3) rpm패키지의 4가지모드
   1) 설치 및 갱신모드
   2) 제거모드
   3) 질의모드
   4) 검증모드

2. RPM사용하기
(1) 사용법
   rpm options [filename]
(2) option
   -i  : 기본적으로 설치할 때 쓴다. 이 옵션을 사용하면 이전 버전의 같은 패키지에 대한 정보가
        존재할 경우 설치하지 않는다.(--install)
   -U  : 이전버전이 설치되어 있으면 업그레이드를 하며, 설치되어 있지않으면 새롭게 설치한다.
        이전버전이 설치되어 있을 경우에 환경설정파일을 제외하고 모두 새롭게 설치한다. 설치시에
        이 옵션을 사용하도록 한다.
   -F  : 현재 설치하는 패키지의 이전 버전이 설치되어 있는 경우에만 설치하고, 그렇지 않은 경우
        에는 설치하지 않는다.
   -v : 설치중 메시지를 보여준다.
   -h :  진행과정을 '#'으로 표시하라는 뜻이다.(--hash)
   -e : 패키지를 제거할 때 쓰인다.
   -q : 패키지가 설치되어 있는 질의한다. 이 옵션 단독으로 사용하면 패키지이름과 버전만 표시된
       다.
   -qa : 현재 설치된 모든 패키지 목록을 찾는데 사용한다. 보통 grep명령과 같이 사용된다.
     예) rpm -qa |grep mail
        => mail 이라는 문자열이 들어가고 설치된 rpm패키지를 찾는다.
   -qi : 현재 설치된 패키지의 간략한 정보를 출력
   -ql : 현재 설치된 패키지의 내용을 보여준다. 어떤 파일이 어디에 설치되어 있는지 확인할 때
        쓴다.
   -Vf : 현재 설치된 파일의 검증할때 쓴다. 문제가 없으면 '.'으로 표시된다.
   -Va : 전체 패키지를 검증한다.
   -Vp : 한 패키지만 검증한다.
   --force : 보통 패키지뒤에 붙는 옵션으로 패키지와의 충돌등을 무시하고 무조건 설치하는 옵션
           이다. (앞에 옵션을 써도 무방함.)
   --nodeps : 의존성 문제를 일으켜 설치가 안될경우에 쓰는 옵션이다.
     예)rpm -Uvh xmms-1.2.4-4.i386.rpm --force
   (참고) '-'는 기본옵션을 뜻하고, '--'는 선택옵션을 뜻한다.

(3) 사용예
   1) 설치
     ㄱ. rpm -Uvh XFree86-Mach64-3.3.6-20kr.i386.rpm
        => Mach64용 X윈도우 드라이버를 설치한다.
     ㄴ. rpm -Uvh han2-0.3.7-9.i386.rpm
        => han2라는 프로그램을 설치한다.
   2) 제거
     ㄱ. rpm -e xmms
        => xmms라는 패키지를 제거한다. 의존성이 있는 경우에는 제거되지 않는다.
     ㄴ. rpm -e httpd --nodeps
        => 의존성이 있는 경우라도 무조건 제거된다.
   3) 질의
     ㄱ. rpm -q sendmail
        => 설치된 sendmail의 패키지를 보여준다.
     ㄴ. rpm -qa
        => 현재 설치된 모든 패키지를 보여준다.
     ㄷ. rpm -qa | grep xmms
        => 현재 설치된 패키지 중에 xmms라는 문장이 들어간 것만 찾는다.
     ㄹ. rpm -qi sendmail
        => sendmail 패키지에 대한 인스톨정보를 보여준다.
     ㅁ. rpm -ql sendmail
        => sendmail이 설치된 경로를 보여준다.

(참고) rpm 패키지를 이용하여 게임설치하기
1. 설명: 간단한 X-window용 게임설치를 통하여 rpm패키지를 사용해보자.
2. 방법
  (1) 심파일(http://simfile.chol.com)에 접속한다.
  (2) 검색창에 'cosmosmash' 라고 입력한다.
  (3) cosmosmash-1.3-1.i386.rpm 라는 패키지를 다운받는다. 참고로 심파일사이트는 X-window의
     웹브라우저에서는 다운받을 수 없으므로 윈도우에서 다운받도록 한다.
  (4) 설치한다.
    [root@redhat9 root]# rpm -Uvh cosmosmash-1.3-1.i386.rpm
    오류: Failed dependencies:
            gengameng >= 4.0 is needed by cosmosmash-1.3-1
            libgengameng.so.4 is needed by cosmosmash-1.3-1
     => 설치를 하면 의존성때문에 설치가 안된다. rpm패키지는 설치나 제거시에 의존성이 있으면
       설치나 제거가 되지 않는다. 이 패키지를 설치하려면 관련 패키지를 먼저 설치해야 한다.
  (5) 의존성문제를 해결하기 위해서 rpm패키지를 검색해주는 http://www.rpmfind.net 사이트에
     접속한다.
  (6) 검색창에 'gengameng'이라고 입력한다.
  (7) gengameng-4.1-3.i386.rpm 라는 패키지를 다운받는다.
  (8) gengameng-4.1-3.i386.rpm 패키지를 설치한다.
    [root@redhat9 root]# rpm -Uvh gengameng-4.1-3.i386.rpm
    경고: gengameng-4.1-3.i386.rpm: V3 DSA signature: NOKEY, key ID f9651d5a
    준비 중...                  ########################################### [100%]
       1:gengameng              ########################################### [100%]
  (9) 다시 cosmosmash-1.3-1.i386.rpm 를 설치한다.
    [root@redhat9 root]# rpm -Uvh cosmosmash-1.3-1.i386.rpm
    준비 중...                  ########################################### [100%]
       1:cosmosmash             ########################################### [100%]
      => 정상적으로 설치됨을 알 수 있다. rpm패키지는 항상 의존성문제를 먼저해결해야 한다.
  (10) 설치된 프로그램을 실행하기 위해서는 실행파일을 찾아야 한다. rpm패키지는 설치는 쉬우나
     설치될 디렉토리지정등을 할 수 없다. 따라서 어떠한 파일이 설치되었고, 어떤 디렉토리에 설치
     되었는지의 질의를 통해 알아봐야 한다.
      예) [root@redhat9 root]# rpm -qi cosmosmash
          Name        : cosmosmash                   Relocations: /usr
          Version     : 1.3                               Vendor: (none)
          Release     : 1                             Build Date: 2002년 12월 27일 (금) 오전 11시 53분 14초
          Install Date: 2003년 06월 18일 (수) 오전 01시 22분 14초      Build Host: elise.sarrazip.org
          Group       : Amusements/Games              Source RPM: cosmosmash-1.3-1.src.rpm
          Size        : 163609                           License: GPL
          Signature   : (none)
          Packager    : Pierre Sarrazin
          URL         : http://sarrazip.com/dev/cosmosmash.html
          Summary     : Clone of the Intellivision(TM) game Astrosmash(TM).
          Description :
          Clone of the Intellivision game Astrosmash.
          In this game, you control a base that must destroy
          rocks before they hit the ground, or you lose points.
          You must also prevent "spinners" from touching the ground,
          or your base will explode.

          This package installs an entry in the GNOME 1.x Games menu.
           => 간단한 설치정보를 볼 수 있다.

          [root@redhat9 root]# rpm -ql cosmosmash
          /usr/bin/cosmosmash
          /usr/man/man6/cosmosmash.6.gz
          /usr/share/gnome/apps/Games/cosmosmash.desktop
          /usr/share/pixmaps/cosmosmash.png
          /usr/share/sounds/cosmosmash
          /usr/share/sounds/cosmosmash/hyperspace.wav
          /usr/share/sounds/cosmosmash/player-hit.wav
          /usr/share/sounds/cosmosmash/pulsar-beep.wav
          /usr/share/sounds/cosmosmash/rock-hit-0.wav
          /usr/share/sounds/cosmosmash/rock-hit-1.wav
          /usr/share/sounds/cosmosmash/saucer-shooting.wav
            => 설치된 파일의 목록을 볼 수 있다. 여기서 실행파일이 /usr/bin/cosmosmash임을 알
              수 있다.
  (11) 실행한다.
    [root@redhat9 root]# /usr/bin/cosmosmash &

우주곰:지구곰이 아닙니다.
지구곰이 아닙니다.
Categories (190)
Information (5)
About uzoogom (5)
My Advanced Linux (73)
Learning Linux (96)
OperatingSystem (5)
Databases (4)
Tips! (1)
OpenSource (1)
«   2018/10   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
  1. 2012/12 (2)
  2. 2012/04 (3)
  3. 2012/03 (6)
  4. 2012/02 (6)
  5. 2012/01 (2)