5. dpkg(데비안 패키지 매니저) |
1) 경로 : /usr/bin/dpkg
2) 요약 : 데비안 패키지 매니저
3) 사용 방법 : dpkg [<옵션> ... ] <명령>
4) 옵션
-i|--instal <.deb 파일이름>... | -R | --recursive <디렉터리> ... : 패키지를 설치
--unpack <.deb 파일이름>... | -R |--recursive <디렉터리> ... : 패키지의 패킹을 해제
--A |--record-avail <.deb 파일이름> ... | -R|--recursive <디렉터리> ... : 패키지 파일의 정보를 dpkg나 dselect에서 사용하는 available로 업데이트
--configure <패키지> ... | -a|--pending : 패킹이 해체된 패키지를 다시 설정
--triggers-only <패키지> ... | -a|--pending₩n : 트리거만 프로세싱 함
-r|--remove <패키지> .. | -a|--pending : 설치한 패키지를 제거
-P|--purge <패키지> ... | -a|--pending : 의존성을 포함하여 모든 패키지를 제거
--get-selections [<패턴> ... ] : 선택 목록을 표준 출력으로 보냄
--set-selections : 선택 목록을 표준 입력으로 받음
--clear-selectioins : 필수가 아닌 패키지는 선택을 모두 지움
--update-avail <Packages-파일> : 사용할 수 있는 패키지 정보를 대체
--merge-avail <Packages-파일> : 파일에 있는 정보와 합침
--clear-avail : 기존 정보를 삭제
--forget-old-unavail : 사용할 수 없고, 설치가 안된 패키지 목록을 삭제
-s|--status <패키지> ... : 사용할 수 잇는 패키지 세부사항을 출력
-p|--print-avail <패키지> ... : 사용할 수 있는 버전 정보를 출력
-L|--listfiles <패키지> ... : 패키지가 소유하는 파일의 목록을 출력
-l(엘)|--list [<패턴> ...] : 패키지들을 간결하게 출력
-S|--search <패턴> ... : 파일들을 소유하고 있는 꾸러미들을 찾음
-C|--audit : 망가진 패키지를 찾음
--print-architecure : dpkg의 구조를 표시
--compare-versions <a> <연산자> <b> : 버전 정보를 비교
--force-help : 강제 명령에 관한 사용법 출력
--Dh|--debug=help : 디버깅에 관한 사용법 출력
-h|--help : 사용법 출력
--version : 버전 정보 출력
--license|--licence : 저작권 정보를 출력
5) 명령
--admindir=<디렉터리> : /var/lib/dpkg 대신에 지정한 <디렉터리>를 사용
--root=<디렉터리> : 지정한 다른 루트 디렉터리에 설치
--instdir=<디렉터리> : 관리 디렉터리를 변경하지 않고, 설치 디렉터리를 변경
-O(영어 오)|--selected-only : 설치하거나 업그레이드하기로 한 패키지는 생략
-E|--skip-same-version : 같은 버전이 설치된 패키지는 생략
-G|--refuse-downgrade : 설치된 것보다 이전 버전인 패키지는 생략
-B|--auto-deconfigure : 다른 패키지를 망가뜨릴 수 있더라도 설치
--[no-]triggers : 트리거를 건너 뛰거나 강제로 처리
--no-debsig : 패키지 서명을 확인하지 않음
--no-act|--dry-run|--simulate : 미리 할 행동을 보여주기만 하고 실제로 실행하지 않음
-D|--debug=<8진수> : 디버깅을 활성화(-Dhelp이나 --debug=help 참고)
-status-fd <n> : 파일 디스크립터로 상태 변경 내역을 보냄
--log=<파일이름> : 상태 변경이나 행동을 <파일이름>에 로그로 남김
--ignore-depends=<패키지>... : <패키지>와 관련된 의존관계를 무시
--force-... : 문제점을 무시(--force-help 참고)
--no-force-...|--refuse-... : 문제가 발생했을 경우 멈춤
--abort-after <n> : 지정한 수치보다 많은 오류가 발생하면 멈춤
6) 아카이브에서 사용하는 명령
-b|--build <디렉터리> [<deb>] : 아카이브를 빌드
-c|--contents <deb> : 내용 목록을 출력
-I(대문자아이)|--info <deb> [<파일> ...] : 정보를 표준 출력에 표시
-W|--show <deb> : 패키지 정보를 출력
-f|--field <deb> [<필드> ...] : 지정한 필드를 출력
-e|--control <deb> [<디렉터리>] : 컨트롤 정보를 출력
-x|--extract <deb> <디렉터리> : 지정한 파일을 출력
-X|--vextract <deb> <디렉터리> : 파일 목록을 출력
--fsys-tarfile <deb> : 파일 시스템 tar 파일을 출력
-h|--help : 사용법 출력
--versioin : 버전 정보 출력
--license|--licence : 저작권 정보 출력
7) 추가 설명
dpkg는 시스템에 설치된 데비안 패키지를 설치, 빌드, 제거 및 관리하는 툴입니다(dpkg보다 사용자 친화적인 프론트엔트는 aptitude가 있습니다). dpkg 명령어는 명령행 파라미터로 정확하게 하나의 명령을 지정하여 실행하거나, 하나 이상의 옵션과 함께 실행합니다.
내려받은 패키지를 설치할 경우 -i 옵션을, 제거할 경우 -r 옵션을 사용합니다. -i 옵션에 의존성 등의 문제로 에러가 발생하더라도 이들을 무시하고 강제적으로 설치하고 싶다면 --force-all 옵션을 사용합니다.
# dpkg -i --force-all linux-image-2.6.32-22-generic-pae
시스템에 설치된 전체 패키지 목록을 보려면 -l(엘) 옵션을 사용합니다. 현재 시스템에 1,461개의 패키지가 설치되어 있음을 확인 할 수 있습니다.
# dpkg -l
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ 이름 버전 설명
+++==========================================
ii acpi-support 0.136 scripts for handling many ACPI events Interface e
ii adduser 3.112ubuntu1 add and remove users and groups
ii adium-theme-ub 0.1-0ubuntu1 Adium message style for Ubuntu
ii aisleriot 1:2.30-0-0ubun Solitaire card games
--- 이하 생략 ---
# dpkg -l | wc
1461 12562 185428
시스템에 설치된 일부 파일을 추적하여 이와 관련한 패키지명을 알고자 하는 경우에는 -S 옵션을 사용합니다.
# ls -al /boot/vmlinuz-2.6.32-22-generic-pae
-rw-r--r-- 1 root root 4158880 2010-04-29 03:39 /boot/vmlinuz-2.6.32-22-generic-pae
# dpkg -S /boot/vmlinuz-2.6.32-22-generic-pae
linux-image-2.6.32-22-generic-pae: /boot/vmlinuz-2.6.32-22.generic-pae
지정한 패키지가 포함하고 있는 전체 파일 목록을 살펴볼 경우에는 -L 옵션을 사용합니다.
# dpkg -L linux-image-2.6.32-22-generic-pae | more
/.
/boot
/boot/vmlinuz-2.6.32-22-generic-pae
/boot/config-2.6.32-22-generic-pae
/boot/abi-2.6.32-22-generic-pae
/boot/System.map-2.6.32-22-generic-pae
/boot/vmcoreinfo-2.5.32-22-genric-pae
/lib
/lib/modules/2.6.32-22-generic-pae
/lib/modules/2.6.32-22-generic-pae/kernel
/lib/modules/2.6.32-22-generic-pae/kernel/arch
/lib/modules/2.6.32-22-generic-pae/kernel/arch/x86
/lib/modules/2.6.32-22-generic-pae/kernel/arch/x86/crypto
-l(엘) 옵션에 패키지명을 지정하면 패키지의 간략한 설명을 확인할 수 있습니다.
# dpkg -l linux-image-2.6.32-22-generic-pae
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ 이름 버전 설명
+++======================================================================
ii linux-image-2.6.32-22-generic-pae 2.6.32-22.33 Linux kernel image for version 2.6.32 on x86
-s 옵션은 -l(엘) 옵션과 달리 패키지가 포함하고 있는 자세한 정보를 모두 출력합니다.
# dpkg -s linux-image-2.6.32-22-generic-pae | more
Package: linux-image-2.6.32-22-generic-pae
Status : install ok installed
Priority : optional
Section : admin
Installed-Size : 94856
Maintainer: Ununtu Kernel Team <kernel-team@lists.ubuntu.com>
Architecture : i386
Source: linux
Version: 2.6.32-22.33
Provides: fuse-module, ivtv-modules, kvm-api-4, linux-image, linux-image-2.6, ndiswrapper-modules-1.9, redhat-cluster-modules
Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda
Pre-Depends: dpkg (> 1.10.24)
-c 옵션은 다운로드한 패키지의 파일 목록을 미리 살펴 볼 수 있습니다.
# dpkg -c linux-image-2.6.32-22-generic-pae_2.6.32-22.33_i386.deb | more
tar: 레코드 크기 = 8 블럭
drwxr-xr-x root/root 0 2010-04-29 03:42 ./
drwxr-xr-x root/root 0 2010-04-29 03:39 ./boot/
-rw-r--r-- root/root 4158880 2010-04-29 03:39 ./boot/vmlinuz-2.6.32-22-generic-pae
-rw-r--r-- root/root 116302 2010-04-29 03:39 ./boot/config-2.6.32-22-generic-pae
-rw-r--r-- root/root 643984 2010-04-29 03:39 ./boot/abi-2.6.32-22-generic-pae
-rw-r--r-- root/root 1728514 2010-04-29 03:39 ./boot/System.map-2.6.32-22-generic-pae
-rw-r--r-- root/root 1200 2010-04-29 03:39 ./boot/vmcoreinfo-2.6.32-22-generic-pae
drwr-xr-x root/root 0 2010-04-29 03:39 ./lib/
drwr-xr-x root/root 0 2010-04-29 03:39 ./lib/modules/
-c 옵션으로 확인한 패키지를 -i 옵션으로 설치하지 않고, -x 옵션으로 지정한 디렉터리에 풀수 있습니다. 만일 디렉터리를 지정하지 않으면 현재 디렉터리에 풉니다.
# dpkg -x linux-image-2.6.32-22-generic-pae_2.6.32-22.33_i386.deb ~/test/
# ls -alh ~/test
합계 20K
drwxr-xr-x 5 user user 4.0K 2010-04-29 03:42 .
drwxr-xr-x 50 user user 4.0K 2010-04-29 03:42 ..
drwxr-xr-x 2 user user 4.0K 2010-04-29 03:42 boot
drwxr-xr-x 4 user user 4.0K 2010-04-29 03:42 lib
rwxr-xr-x 3 user user 4.0K 2010-04-29 03:42 usr
6. pkgadd(패키지 설치) |
1) 경로 : /usr/sbin/pkgadd
2) 요약 : 유닉스 기반에서 소프트웨어 패키지를 시스템에 설치
3) 사용 방법
pkgadd [-nv] [-a admin] [-G] [-x proxy] [[-M] -R root_path]
[-r response] [-k keystore] [-P passwd] [-V fs-file]
[-d device | -d datastream pkginst | all]
[pkginst | -Y category [, category] ...]
pkgadd -s [-d device | -d datastream pkginst | all] [pkginst | -Y category [,category] ...]
4) 옵션
-a admin : 인스톨 관리파일, 관리자, 기본 관리 파일의 위치를 지정. 위치를 지정하지 않으면 현재 디렉터리에서 파일을 찾음. 만이 ㄹ현재 디렉터리에 파일이 없다면 /var/sadm/install/admin 디렉터리에서 파일을 찾음
-G : 현재 위치에서만 패키지를 추가
-k keystore : 디지털 서명을 위한 키 스토어(keystore) 위치를 지정
-M : 클라이언트 마운트 위치로 $root_path/etc/vfstab 파일을 이용하지 않음
-n : 비대화형 모드(non-interactive mode)로 패키지를 설치
-P passwd : 지정한 암호화 키 스토어를 패스워드로 사용
-R root_path : 디렉터리(root_path)를 전체 패스로 지정
-s spool : 패키지를 설치하지 않고, 지정한 ㄷ디렉터리(spool)에 패키지를 저장
-V fs_file : 클라이언트 파일 시스템(fs_file)을 지정
-x proxy : 패키지를 다운로듷라 HTTP(s) 프록시(proxy)를 지정
5) 추가 설명
pkgadd 명령어는 유닉스 기반의 명령어로 소프트웨어 패키지의 내용을 기준으로 CD-ROM과 같은 배포 매체나 지정한 디렉터리에서 패키지를 설치합니다. 만인 -d device 옵션을 지정하지 않으면 /var/spool/pkg 디렉터리 위치에서 패키지를 찾습니다. -s 옵션은 패키지를 설치하는 대신 스풀 디렉터리에 쓰게 됩니다.
pkgadd는 패키지를 설치할 때 쓸 임시 공간을 요구합니다. 임시 디렉터리는 $TMPDIR 환경 변수에서 결정합니다. 만일 $TMPDIR 변수가 정의되어 있지 않드면 stdio.h에서 지정한 P_tmpdir 값인 /var/tmp 디렉터리로 결정합니다.
-d 옵션으로 CD-ROM에 있는 패키지를 설치합니다.'
# pkgadd -d /cdom/CD-ROM0/s0/Solaris_10/Product
/var/tmp/datastream 파일에서 지정한 패키지 전체를 설치할 수 있습니다.
# pkgadd -d /var/tmp/datastream all
7. pkgchk(패키지 무결성 체크) |
1) 경로 : /usr/sbin/pkgchk
2) 요약 : 유닉스 기반의 패키지 인스톨 무결성 검사
3) 사용 방법
pkgchk [-l(엘)| -acfnqvx] --i file | -] [-p path... | -P partial-path...]
[-R root_path] [[-m pkgmap [-e envfile]] | pkginst... | -Y category, category...]
pkgchk -d device [-l(엘 | -fv] [-i file | -] [-M] [-p path]... [-V fs_file]
[pkginst... | -Y category[, category... ]]
4) 옵션
-a : 파일 속성만을 감사(audit)하고, 파일의 내용은 검사하지 않음. 기본값은 두 가지 모두 검사
-c : 파일 내용만 감사하고, 파일 속성은 검사하지 않음
-d device : 스풀 패키지의 디바이스(device)를 지정. 디바이스는 디렉터리 위치, 테이프, 플로피 디스크, 제거 가능한 디스크(/var/tmp 또는 /dev/diskette) 중 하나를 지정할 수 있음
-e envfie : 패키지 정보 파일 이름(envfile)을 지정
-f : 가능하다면 파일 속성을 수정. -x 옵션과 같이 사용하여 숨김 파일을 제거
-i file | - : 파일(file)이나 표준입력(-)에서 위치를 읽고, 목록을 설치할 소프트웨어 데이터베이스인 패키지 맵 파일과 비교
-l(엘) : 선택된 파일 정보를 출력. 이 옵션은 -a, -c, -f, -g, -v 옵션과는 호관되지 않음
-m pkgmap : 지정한 패키지 맵 파일(pkgmap)에서 패키지를 체크
-n : 파일의 내용을 체크하지 않음
-p path : 지정한 위치(path)에서만 체크
-q : 에러에 관한 메시지를 출력하지 않음
-R root_path : 전체 디렉터리(root_path)를 지정
-v : 상세 정보 출력
-V fs_file : 클라이언트 파일 시스템(fs_file)을 지정
5) 명령
pkginst : 설치하거나 체크할 패키지(pkginst)를 지정. "pkginpkginit.*" 형태는 pkginst로 시작하는 모든 패키지를 뜻함. 기본값은 패키지의 정보를 모두 출력
6) 추가 설명
pkgchk 명령오는 유닉스 기반의 명령으로 인스톨된 파일의 무결성을 체크하고 차이점을 발견하면 상세 정보를 출력합니다. -l(엘) 옵션은 패키지 파일의 정보를 출력합니다.
아래 명령은 시스템에 설치된 오브젝트의 내용 또는 속성을 출력합니다.
pkgchk [-l(엘)| -acfnqvx] --i file | -] [-p path... | -P partial-path...]
[-R root_path] [[-m pkgmap [-e envfile]] | pkginst... | -Y category, category...]
아래 명령은 디바이스의 스풀 패키지나 설치되지 않은 패키지의 목록을 체크할 때 사용합니다.
pkgchk -d device [-l(엘 | -fv] [-i file | -] [-M] [-p path]... [-V fs_file]
[pkginst... | -Y category[, category... ]]
아래 명령어는 /usr/bin/ls 명령과 관련한 패키지를 출력합니다. 이는 레드햇 리눅스의 rpm -qf 명령과 같습니다.
# pkgchk -l - /usr/bin/ls
8. pkginfo(패키지 정보) |
1) 경로 : /usr/sbin/pkginfo
2) 요약 : 유닉스 기반의 지정된 패키지의 정보를 출력
3) 사용 방법
pkginfo [-q | -x | -l(엘)] [-p | -i] [-r] [-a arch] [- version] [-c category]... [pkginst]...
pkginfo [-d device] [-R root_path] [-q | -x | -l(엘)] [-a arch] -v version] [-c category]... [pkginst]...
4) 옵션
-a arch : 지정한 아키텍처(arch)의 정보를 출력
-c category : 카테고리(category)와 일치하는 패키지를 출력
-d device : 디바이스(device)를 지정. 디바이스는 디렉터리의 절대 경로, 테이프, 플로피 디스크, 제거할 수 있는 디스크의 id를 지정할 수 있음
-i : 설치한 패키지의 정보만 출력
-l(엘) : 설치한 패키지를 자세한 형태의 정보로 출력
-p : 설치한 패키지의 정보의 일부분만 출력
-q : 메시지를 출력하지 않음
-r : 위치를 재지정한 패키지의 정보를 출력
-R root_path : 디렉터리(root_path)의 전체 경로를 지정
-v version : 지정한 버전(version)의 정보를 출력
-x : 패키지 정보의 목록을 출력. 목록은 패키지 축약, 패키지 이름, 패키지 아키텍처와 패키지 버전을 포함
5) 추가 설명
아래의 pkginfo 명령어는 시스템에 설치한 소프트웨어 패키지에 관한 정보를 출력합니다.
pkginfo [-q | -x | -l(엘)] [-p | -i] [-r] [-a arch] [- version] [-c category]... [pkginst]...
아래의 pkginfo 명령어는 디바이스나 디렉터리에 존재하는 정보를 출력합니다.
pkginfo [-d device] [-R root_path] [-q | -x | -l(엘)] [-a arch] -v version] [-c category]... [pkginst]...
만일 옵션을 지정하지 않으면 주요 카테고리, 패키지 인스턴스, 설치한 모든 패키지의 이름을 출력합니다.
9. pkgrm(패키지 제거) |
1) 경로 : /usr/sbin/pkgrm
2) 요약 : 유닉싀 기반의 패키지를 제거
3) 사용 방법
pkgrm [-nv] [-a admin] [[-A | -M] -R root_path] [-V fs_file]
[pkginst... | -Y category[,category...]]
pkgrm -s spool [pkginst... | -Y category[,category...]]
4) 옵션
-a admin : 설치를 위한 관리 파일(admin)을 지정
-A : 클라이언트 파일 시스템의 패키지 파일을 제거. 만일 하나의 파일이 다른 패키지와 공유하면 파일을 제거하지 않음
-n : 비대화형 모드
-R root_path : 디렉터리의 전체 경로(root_path)를 지정
-s spool : 지정한 디렉터리(spool)에서 패키지를 제거. 기본 스풀 디렉터리는 /var/sadm/pkg 임
-v : 상세 정보 출력
-V fs_file : 클라이언트 파일 시스템 맵(fs_file)을 지정
-Y category : 카테고리(category)를 지준으로 패키지를 제거
5) 명령
pkginst : 제거할 패키지를 지정. pkginit.* 형태는 pkginst로 시작하는 모든 패키지를 제거
6) 추가 설명
pkgrm 명령어는 이전에 설치된 패키지를 제거하고, 의존성이 잇는 패키지 목록을 출력합니다. 만일 의존성이 있으면 파일(admin)에서 정의한 내용을 따릅니다. 기본으로는 비 상호 대화형 모드(interactive mode)로 실행합니다.
아래는 client1에서 SUNWjunk로 시작하는 모든 패키지를 제거합니다.
# pkgrm -R /export/root/client1 SUNWjunk*
'IT 이야기 > Linux 명령어' 카테고리의 다른 글
[RHEL6] 프로세스 관리 명령어 1탄(fuser, init, ionice, ipcrm, ipcs) (0) | 2020.05.08 |
---|---|
[RHEL6] 패키지 관리 명령어 3탄(rpm, rpm2cpio, rpmbuild, yum) (0) | 2020.05.07 |
[RHEL6] 패키지 관리 명령어 1탄(apt-cache, apt-file, apt-get, dpkg-buildpackage) (0) | 2020.05.06 |
[RHEL6] 파일 시스템 7탄(swapoff, swapon, tune2fs, umount) (0) | 2020.04.16 |
[RHEL6] 파일 시스템 6탄(restore, rootflags, showmount, stat) (0) | 2020.04.16 |
댓글