pkgadd
이 문서는 안녕 리눅스 1.2 ~ 1.3에서 사용하는 Package 관리도구에 대한 설명 입니다. 안
녕리눅스 2 부터는 Yum Repository를 이용하여 package를 관리하므로, 안녕 리눅스 2 이상
의 사용자들은 이 문서를 참고할 필요가 없습니다.
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
을 사용한다는 점만 차이입니다.
또한, 이는 개별 설치 목록에서 다루어 집니다.
|