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

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

 

1. 설치 및 갱신모드
(1) 설명: 새로운 패키지를 설치할 때 사용된다. 설치 모드의 변형으로 업그레이드 모드도 들 수
          있다.
(2) 관련옵션
   -i : 새로운 패키지를 설치할 때 사용한다. 이전 버전의 같은 패키지에 대해 정보가 지워지지
       않으며 또한 이전 버전의 설정 파일도 백업하지 않는다. (--install)
   -U : 기존의 패키지를 새로운 버전의 패키지로 업그레이드할 때 사용한다. 이전 버전이 설치된
       경우에는 환경설정파일을 제외하고 새롭게 설치하는데 원래 설정은 .rpmsave에 기록한다.
       또한, 설치된 패키지가 없을 경우에도 새로운 버전을 설치할 수 있는데 이 경우에는 -i옵션과
       같다고 볼 수 있다. (--upgrade)
   -F : 이전 버전이 설치되어 있는 경우에만 설치한다.(--freshen)
   -v : 메시지를 자세히 보여준다.
   -h : '#'기호 표시해 준다.
   --force : 기존에 설치된 패키지와 그 파일을 강제로 다시 설치하도록 한다. 업그레이드의 경우
            설치하고자 하는 패키지가 설치되어있는 패키지보다 구버전인 경우에도 강제로 설치
            한다.
   --nodeps : 의존성 관계를 무시한다.
   -vv : 메시지를 아주 자세히 보여준다.
   --test : 실제로 파일에 기록하는 작업을 제외한 대부분을 테스트한다. 패키지를 실제 설치하기
           전에 제대로 설치되는지 테스트해 볼 경우에 사용한다. -v, -h옵션과는 함께 사용할 수
           없으며 -vv는 사용가능하다.
   --oldpackage : 구버전으로 다운그레이드할 때 사용한다.
   --percent : 설치할 때 퍼센트를 보여준다.
   --replacefiles: 설치되어있는 파일이 있는 경우 덮어쓰면서 다시 설치한다.
   --replacepkgs: 같은 패키지가 있어도 다시 설치한다.
   --ignorearch: 아키텍쳐를 무시하고 설치한다.
   --root: 기준이 되는 디렉토리를 설정한다.
   --exculdepath: 지정된경로에는 파일을 설치하는 않는다.
   --prefix: 지정된 경로에 패키지를 설치한다.
   --relocate OLDPATH=NEWPATH: 원래의 경로를 새로운 경로로 바꾸고 설치한다.
   --badreloc: --relocate와 같이 사용하는 옵션으로 OLDPATH에 대한 할당 정보를 제외하고 파일,
              경로 등에 대한 정보를 허가한다.
   --rebuilddb : 특정한 패키지 설치후에 rpm패키지로 검색했으나 나타나지 않을 때 rpm데이터베이
               스를 업데이트한다
(3) 정리
   -ivh : 새로운 패키지 설치
   -Uvh : 업그레이드하거나 새로운 패키지 설치
   -Fvh : 이전 버전의 패키지가 있는 경우에만 패키지 설치
(4) 사용예
   1) [root@www src]# rpm -Uvh --oldpackage  proftpd-1.2.2-3kr.i686.rpm
       => 설치하고자 하는 버전이 이미 설치되어 있는 버전보다 낮더라도 설치한다.
   2) [root@www src]# rpm -Uvh --percent  proftpd-1.2.2-3kr.i686.rpm
       => 설치할 때 퍼센트를 출력해준다.
   3) [root@www src]# rpm -Fvh ftp://updates.redhat.com/current/i386/*.rpm
       => 이미 설치된 패키지만 업데이트한다.

2. 제거모드
(1) 설명 : 시스템에 설치된 패키지를 제거하기 위해 사용된다. rpm은 기본적으로 삭제대상 패키지에
           의존적인 다른 패키지가 없을 경우에만 삭제한다.
(2) 관련옵션
   -e : 설치된 패키지를 제거한다.
   --nodeps : 제거시 의존성을 무시한다.
   --test : 실제로 제거하지 않고 테스트한다. 역시 -v,-h옵션은 사용할 수 없으며, -vv옵션만 사용
           가능하다.
   --allmatches: 동일한 이름이 패키지가 중복설치되어 있는 경우 모두 제거한다.
(3) 사용예
   1) [root@www /root]# rpm -e --test xemacs
      error: removing these packages would break dependencies:
             xemacs = 21.1.14 is needed by xemacs-el-21.1.14-10
             xemacs = 21.1.14 is needed by xemacs-info-21.1.14-10
       => rpm패키지 제거 테스트다. 이 경우는 의존성때문에 제거할 수 없다. 만약 그래도 제거하려
         면 --nodeps를 붙여야 한다.
   2) [root@www /root]# rpm -e httpd --nodeps
       => httpd 패키지에 의존성이 있더라도 무조건 제거한다.
   3) [root@www /root]# rpm -e sendmail --allmatches
       => sendmail이 중복되어 설치되어 있는 경우 모두 지운다.

3. 질의모드
(1) 설명: 설치된 패키지와 각 패키지에 포함된 파일들을 'rpm -q'를 이용하여 질의(Query)할 수
          있다.
(2) 관련옵션
   -q : 질의시에 꼭 써야하는 옵션이다. 패키지를 찾으면 패키지이름과 버전만 표시한다.
   -i : 설치된 패키지의 정보를 보여준다. -p옵션과 사용하면 패키지 파일정보를 보여준다.
   -l : 패키지에 포함된 모든 파일을 보여준다. 역시 -p와 사용하려면 정확한 파일명을 적는다.
       (--list)
   -p 파일명: 패키지의 파일에 대한 정보를 보여준다. 이 옵션을 사용하려면 패키지파일의 정확한
             이름을 입력해야 한다.
   -a : 시스템에 설치된 모든 패키지목록을 보여준다. (--all)
       패키지명을 잘 모르는 경우에는 '| grep 패키지명'을 붙여 사용하면 유용하다.
   -f 파일명: 지정된 파일이 포함된 패키지를 출력한다.
   -c : 해당패키지의 설정파일이나 스크립트파일을 보여준다.
   -d : 해당패키지의 문서파일을 출력한다.
   -R : 어떤 패키지에 의존하고 있는지를 보여준다. (--requires)
   --changelog: 특정 패키지의 바뀐 내역을 최근부터 연대순으로 보여준다.
   --scripts: 인스톨 및 언인스톨관련 스크립트를 보여준다.
   --filesbypkg : rpm패키지가 많을 경우 목록으로 보이는 파일앞에 패키지명을 붙인다.
   --whatrequires: 해당패키지를 필요로하는 패키지를 보여준다.
   --whatprovides: 해당패키지가 제공하는 패키지를 보여준다.
   --requires: 해당패키지가 설치되거나 동작시에 필요한 패키지 목록을 보여준다.
   --queryformat: 질의의 결과를 원하는 형태로 출력할 때 쓴다. C언의 printf()함수의 동작방법과
                 비슷하다.
(3) 사용예
   1) [root@www spool]# rpm -q sendmail
      sendmail-8.12.5-7
        => 설치된 sendmail의 패키지이름과 버전을 보여준다.
   2) [root@www /root]# rpm -qi sendmail
        => sendmail의 패키지정보를 보여준다.
   3) [root@www /root]# rpm -qa
        => 현재 설치된 모든 패키지를 보여준다.
   4) [root@www /root]# rpm -qa |grep netscape
      netscape-communicator-4.77-1wl
      netscape-common-4.
      netscape-navigator-4.77-1wl
       => 네스케이프관련 패키지를 보여준다.
   5) [root@www /root]# rpm -ql sendmail
       => sendmail이 설치되어 있는 곳을 보여준다.
   6) [root@www /root]# rpm -qf /etc/lilo.conf
      file /etc/lilo.conf is not owned by any package
       => 모든 파일이 rpm패키지를 통해서 인스톨된 것은 아니다.
   7) [root@www /root]# rpm -qf /etc/sendmail.cf
      sendmail-8.11.3-1wl
       => 해당파일에 대한 관련패키지를 찾아준다.
   8) [root@www /root]# rpm -qc at
      /etc/at.deny
      /etc/rc.d/init.d/atd
   9) [root@www /root]# rpm -qd lilo
       => lilo관련 문서파일을 보여준다.
   10) [root@www /root]# rpm -qR sendmail
       => sendmail이 의존하고 있는 패키지를 보여준다.
   11) [root@www /root]# rpm -q --changelog sendmail
        => sendmail이 바뀐 내역을 최근부터 연대순으로 보여준다.
   12) [root@www root]# rpm -q --scripts sendmail
        => sendmail의 인스톨 및 언인스톨관련 스크립트를 보여준다.
   13) [root@www src]# rpm -qlp proftpd-1.2.7-3kr.i686.rpm
        => 패키지의 설치되는 파일을 보여준다.
   14) [root@www src]# rpm -qip proftpd-1.2.7-3kr.i686.rpm
       [root@www src]# rpm -qlp proftpd-1.2.7-3kr.i686.rpm
       /etc/logrotate.d/proftpd
       /etc/pam.d/ftp
         ..생략..
        => 패키지의 정보를 보여준다.
   15) [root@www src]# rpm -qp --filesbypkg *.rpm
       proftpd                   /etc/logrotate.d/proftpd
       proftpd                   /etc/pam.d/ftp
        ..생략..
        => 확인하고자하는 패키지파일이 많은 경우 각 파일앞에 패키지명을 덧붙여 보여준다.
   16) [root@www /root]# rpm -q --whatrequires httpd
        => httpd 를 필요로 하는 패키지를 보여준다.
   17) [root@www /root]# rpm -qa --queryformat "%10{size} %{name}\n"
        => 패키지를 일정한 형태로 출력한다.

4. 검증모드
(1) 설명: 설치된 패키지 파일들을 검증한다. 보통 보안상 침입자에 의해 실행파일들이 권한획득을
          위해 변조되는 경우가 있는데 이러한 것을 찾아낼 때 사용한다.
(2) 관련옵션
   -V : verify의 약자로 검증할때 쓰는 기본 옵션이다.
   -a : 모든 패키지를 검사한다.
(3) 사용예
   1) [root@www /root]# rpm -V bind
      SM5..UGT c /etc/rndc.conf
       => 환경파일은 변경될 수 있으므로 크게 신경안써도 된다.
   2) [root@www /root]# rpm -Va
       => 모든 패키지를 검사한다.
(4) RPM 검증코드
   5 : MD5체크섬을 변경
   S : 파일의크기를 변경
   L : 심볼릭 링크를 변경
   T : 파일의 수정일을 변경
   D : 장치파일을 변경
   U : 파일사용자/소유자가 변경
   G : 파일 그룹이 변경
   M : 파일모드(권한과 파일형태)가 변경
   ? : 원인을 알 수 없거나 예측하지 못한 결과인 경우
(5) 참고 : 패키지를 구해서 설치할 경우 잘 알려지지 않는 경로로 파일을 입수했을 경우에 체크를
           해보는 것이 좋다. 이 경우에 --checksig를 사용한다.
    [root@www /root]# rpm --checksig fileutils-4.0-1.i386.rpm
    fileutils-4.0-1.i386.rpm: size md5 OK
     => 'size md5 OK'는 해당 파일의 크기와 MD5체크섬의 확인결과와 본래값과 일치하므로 문제가
       없다는 뜻이다. 체크섬을 파일내용이나 다른 정보를 기초로 하여 계산된다.

Trackback
Reply
우주곰:지구곰이 아닙니다.
지구곰이 아닙니다.
Categories (190)
Information (5)
About uzoogom (5)
My Advanced Linux (73)
Learning Linux (96)
OperatingSystem (5)
Databases (4)
OpenSource (1)
Tips! (1)
«   2024/05   »
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