AnNyung Official Homepage Home > Pkgadm [ Pkgadd ]  

HOME
What is AnNyung
Documents
Packages System
  . Packages System ?
  . pkgsysupdate
  . pkgdistupdate
  . pkgdb
  . pkginfo
  . pkgadd
  . pkgdel
  . pkgchk
  . pkgkernel
  . pkgdeveltrans
White Paper
Download
Update
FAQ
Hardware
RoadMap
Gallery

  Go oops.org
  AnNyung banner 88x31

  AnNyung banner 80x15
  AnNyung banner 80x15
  AnNyung banner 80x15
  AnNyung banner 80x15
  AnNyung banner 80x15
  AnNyung banner 80x15



pkgadd
pkgadd 는 Packages System 에서 제공하는 패키지를 설치/업데이트 관리하는 도구 입니다.
또한, pkgadd 는 원하시는 다른 rpm 패키지를 Packages System 에서 관리할 수 있게 해 줍
니다. 이 말은 다른 배포본의 패키지를 그냥 가져와서 설치할 수 있다는 것은 아니며 안녕
에서 사용 가능 하지만 안녕에서 제공하지 않은 별개의 패키지를 안녕의 Packages System
의 데이터베이스에서 같이 관리를 해 준다는 의미입니다.

다음은 pkgadd 의 사용 예제입니다.

    1. 기본 사용법
    2. 패키지 설치
    3. 버전을 지정하여 패키지 설치
    4. 패키지 업데이트
    5. 설치되어 있는 패키지만 업데이트
    6. 로컬 파일 패키지를 설치 및 업데이트
    7. 원격 파일 패키지를 설치 및 업데이트



 
1. 기본 사용법 

 Hanterm - pkgadd --help


 [oops@main dir]$ pkgadd --help
  PKGADM v.2.0.0 : 패키지 관리 툴

  사용법: /usr/sbin/pkgadd [옵션] [패키지이믈]
  Options:
      -v|--verbose        상세 출력
      -i|--install        설치 모드. 기본 값이다.
      -u|--upgrade        업그레이드 모드. 이 옵션은 rpm 의 -U 와 같다.
      -F|--freshen        설치되어 있는 패키지만 업데이트 한다. 이 옵션은 rpm 의 -F 와 같다
      -f|--force          강제 설치 옵션으로 -u 또는 -F 옵션과 같이 사용한다.
                          이 옵션은 rpm 의 --force 옵션과 같다
      -n|--noansi         안시 출력 사용 안함
      -h|--help           도움말 (현재 메세지).
 [oops@main dir]$ 


  pkgadd 를 사용할 경우 2.0.1 버전 부터는 pkgadd php* 과 같이 astrik (*) 를 사용할 수
  있습니다. 이 표현을 사용 할 경우 주의할 점은, php* 표현은 php 로 시작하는 모든 패키
  지를 의미할 수도 있지만, 만약 명령을 실행하는 current directory 에 php* 으로 시작하
  는 rpm 파일이 존재할 경우, 쉘 확장에 의하여 php 로 시작하는 모든 패키지의 의미가 아
  닌 현재 디렉토리의 php 로 시작하는 모든 패키지가 되는 것을 주의해야 합니다.

 
2. 패키지 설치 

  pkgadd 는 pkgsysupdate 가 관리하지 않는 third party 패키지 즉, Packages System 에서
  제공하는 패키지를 설치하는 명령입니다.

  아래의 예제는 nfs-utils 에 의존성이 걸린 portmap 을 같이 설치해 주는 과정입니다. 주
  의할 것은 pkgadd가 버전 의존성을 체크하지 않기 때문에, 간혹 문제가 발생할 소지가 있
  습니다. 이는 oops.org 의 QnA 게시판으로 문의를 주십시오.

  -v 옵션을 주면 좀 더 자세한 사항을 보실 수 있습니다.

 Hanterm - pkgadd


 [oops@main dir]$ pkgadd nfs-utils
  nfs-utils       : 
    ==> 의존성 패키지 portmap 성공
    ==> nfs-utils Install 성공

 [oops@main dir]$ 


 
3. 버전을 지정하여 패키지 설치 
  pkginfo -l 패키지 명령을 수행하면 해당 패키지의 Packages System에서 제공 가능한 버
  전 형식을 보여줍니다. 자세한 것은

  http://annyung.oops.org/?m=pkgadm&p=pkginfo#4

  을 참조 하십시오. 버전 정보가 없이 설치를 하면, 현재의 current (안정) 버전이 설치
  가 됩니다. current 버전에 대한 정보는 위의 pkginfo 링크에서 확인하실 수 있습니다.

  -v 옵션을 주면 상세한 내용을 확인할 수 있습니다.

 Hanterm - pkgadd php-5:4.3.8-1-i686


 [oops@main dir]$ pkginfo -l php
  PKGADM v2.0.0 : 패키지 시스템 데이터베이스 뷰어
  php             : PHP HTML - Apache와 함꼐 사용하는 embedded script 언어 [ 설치안됨 ]
  버전정보        : 5:4.3.8-1-i686
                    6:4.3.9-1-i686 *
 [oops@main dir]$ 
 [oops@main dir]$ pkgadd php-5:4.3.8-1-i686
  php             : Install 성공
 [oops@main dir]$ 
 [oops@main dir]$  pkginfo php
  php             : PHP HTML - Apache와 함꼐 사용하는 embedded script 언어 [업데이트]
 [oops@main dir]$ 


 
4. 패키지 업데이트 

  패키지 업데이트는 패키지 설치에 -u 옵션만 더해 주는 방식과 같습니다. 실제로 업데이
  트가 아닌 인스톨에도 -u 를 사용해도 무방하므로, 왠만하면 설치시에도 -u 옵션을 주는
  것을 권장합니다. 만약 반드시 업데이트만 하고 싶다면 다음 섹션을 참고합니다.

  만약 설치 되어 있는 버전을 재설치 하거나, 또는 하위 버전으로 다운그레이드를 하고싶
  다면, 버전 정보를 명기하고 -f 옵션을 주면 됩니다.

 Hanterm - pkgadd -u php

 [oops@main dir]$ pkginfo -l php
  PKGADM v2.0.0 : 패키지 시스템 데이터베이스 뷰어
  php             : PHP HTML - Apache와 함꼐 사용하는 embedded script 언어 [ 설치안됨 ]
  버전정보        : 5:4.3.8-1-i686
                    6:4.3.9-1-i686 *
 [oops@main dir]$ 
 [oops@main dir]$ pkgadd php-5:4.3.8-1-i686
  php             : Install 성공
 [oops@main dir]$ 
 [oops@main dir]$  pkginfo php
  php             : PHP HTML - Apache와 함꼐 사용하는 embedded script 언어 [업데이트]
 [oops@main dir]$ 
 [oops@main dir]$  pkgadd -u php
  php             : Update 성공
 [oops@main dir]$ 
 [oops@main dir]$  pkginfo php
  php             : PHP HTML - Apache와 함꼐 사용하는 embedded script 언어
 [oops@main dir]$ 
 [oops@main dir]$  pkgdel php
  php             : 삭제 성공
 [oops@main dir]$ 
 [oops@main dir]$  pkgadd -F php
  php             : 설치 안됨
 [oops@main dir]$ 


  pkgadd -u 를 사용해야 하는 가장 큰 이유는, pkgadd -u 명령은 업데이트가 실행 될때에
  이 전의 설정파일을 /var/lib/pkgadm/conf 디렉토리에 백업을 하게 됩니다.  필자가 rpm
  을 사용하면서 가장 열받는 경우가 spec 파일에 noreplace 라고 지정을 했음에도 불구하
  고 그냥 덮어쓰는 경우가 있었는데, 이를 해결할 수 있기 때문입니다. 만약 설정 파일이
  초기화 되었다고 판단이 들면 /var/lib/pkgadm/conf 에서 찾으시면 됩니다.

 
5. 설치되어 있는 패키지만 업데이트 

  현재 시스템에 설치가 되어 있는 패키지만 업데이트를 하고 싶다면, -u 옵션 대신 -F 옵
  션을 사용하면 됩니다.  -F 옵션을 사용하면 아래의 예와 같이 시스템에 설치가 되지 않
  은 패키지는 업데이트 하지 않습니다.

 Hanterm - pkgadd -F php

 [oops@main dir]$ pkginfo -l php
  PKGADM v2.0.0 : 패키지 시스템 데이터베이스 뷰어
  php             : PHP HTML - Apache와 함꼐 사용하는 embedded script 언어 [ 설치안됨 ]
  버전정보        : 5:4.3.8-1-i686
                    6:4.3.9-1-i686 *
 [oops@main dir]$ 
 [oops@main dir]$ pkgadd -F php
  php             : 설치 안됨

 [oops@main dir]$ 


 
6. 로컬 파일 패키지를 설치 및 업데이트 

  pkgadd 는 Packages System 의 패키지 뿐 아니라 로컬 파일을 설치할 수도 있습니다. 이
  경우에는 pkginfo 에서 개별 설치 데이터 베이스로 따로 관리 및 출력을 합니다. 단, 설
  치 가 완료되면 원본 파일은 삭제가 되니 주의 하십시오.

  업데이트는 기본 업데이트와 같이 -u 나 -F 옵션을 사용하면 됩니다.

  참고할 것은, 일단 개별 설치로 설치된 패키지를 나중에 official 용으로 설치를 하더라
  도 이는 계속 개별 패키지로 관리가 됩니다.  이를 official 목록으로 넣고 싶다면 삭제
  를 한 후에, 재 설치를 해야 합니다.

 Hanterm - pkgadd -u

 [oops@main dir]$ pkgadd ./w3m-0.4.1-8,1.i686.rpm
  w3m             : Install 성

 [oops@main dir]$ pkginfo w3m
  w3m             : A pager with Web browsing abilities. [ 유저 ]
 [oops@main dir]$ 
 [oops@main dir]$ pkginfo

  -- [ 개별 설치 패키지 목록 ] -----------------------------

  w3m             : A pager with Web browsing abilities.[ USER ]

  -- [ 설치된 패키지 목록 ] -----------------------------

  sqlite-devel    : sqlite 를 이용한 개발시 필요한 헤더파일과 라이브러리들
  sqlite          : 향상된 내장 SQL 데이터베이스 엔진 C 라이브러리
  dejagnu         : 다른 프로그램을 테스트 하기 위한 프론트엔드
  pkgconfig       : A tool for determining compilation options.
  dietlibc        : A small libc implementation
 [oops@main dir]$ 


 
7. 원격 파일 패키지를 설치 및 업데이트

  원격 파일 패키지는 로컬 파일 패키지와 동일합니다. 다만 파일 경로를 ftp 또는 http URL
  을 사용한다는 점만 차이입니다.

  또한, 이는 개별 설치 목록에서 다루어 집니다.



    



 Home > Pkgadm [ Pkgadd ]

Copyright 2013 OOPS Development Organization 
LAST MODIFIED: 2012/08/28