Dpkg
둘러보기로 가기
검색하러 가기
앞에서 설명한 것과 같이 dselect, apt의 작업을 실제적으로 수행하는 것은 dpkg 패키지 관리 도구이다. dpkg는 수많은 옵션이 있는데 중요한 몇 가지만 살펴보기로 하자.
목차
-i|--install 패키지파일
패키지를 설치하는 명령어이다.
-r|--remove 패키지명
설치된 패키지를 삭제하는 명령어이다.
-P|--purge 패키지명
-r과는 달리 환경 설정 파일까지 삭제하는 명령어이다.
-l|--list 패턴
패턴에 일치하는 패키지를 찾아준다.
khkim:/# dpkg --list apache* Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad) ||/ Name Version Description +++-==============-==============-============================================ ii apache 1.3.22-2 Versatile, high-performance HTTP server ii apache-common 1.3.22-2 Support files for all Apache webservers pn apache-dev <none> (no description available) pn apache-doc <none> (no description available) un apache-modules <none> (no description available) pn apache-perl <none> (no description available) pn apache-ssl <none> (no description available)
-s|--status 패키지명
패키지의 상태 및 정보를 나타낸다. apt-cache show와 비슷하다.
-L|--listfiles 패키지명
패키지에 들어있는 목록, 파일, 파일 경로를 보여준다.
khkim:/# dpkg -L apache /. /etc /etc/cron.daily /etc/cron.daily/apache /etc/apache /etc/init.d /etc/init.d/apache /var /var/log /var/log/apache /var/cache /var/cache/apache /usr ...
-S|--search 패턴
설치되어 있는 패키지 중에서 패턴에 맞는 패키지를 검색해준다.
khkim:/# dpkg -S httpd.conf apache: /usr/share/doc/apache/examples/httpd.conf apache: /usr/share/doc/apache/examples/httpd.conf-dist khkim:/# dpkg -S stdio.h perl: /usr/lib/perl/5.6.1/CORE/nostdio.h libc6-dev: /usr/include/stdio.h libc6-dev: /usr/include/bits/stdio.h gcc-3.0: /usr/lib/gcc-lib/i386-linux/3.0.2/include/stdio.h
--force 옵션
dpkg --force-help를 실행하면 force 옵션과 관련된 내용이 나온다. 강제 옵션을 쓰다가 생기는 문제를 충분히 해결할 수 있는 능력이 되는 사용자가 쓰기를 권한다. 가장 많이 쓰는 옵션으로는 depends-version, depends인데, 처음 옵션은 버전 의존성 문제를 경고로 넘어가고 두 번째 옵션은 모든 의존성 문제를 경고로 보고 그냥 넘어가게 된다.
어떤 패키지를 의존이 걸린 문제를 무시하고 무조건 설치하려면
dpkg --force-depends --install package
와 같이 하면 된다. 물론 삭제도 같은 방법으로 하면 된다.
#dpkg --force-help dpkg 강제 옵션 - 문제가 발생할 때 컨트롤 방법: 경고하지만 계속: --force-<항목>,<항목>,... 오류로 중단: --refuse-<항목>,<항목>,... | --no-force-<항목>,... 강제할 항목: all 모든 강제 옵션을 사용 auto-select [*] 설치하려는(지우려는) 꾸러미를 선택(선택해제) downgrade [*] 꾸러미를 더 낮은 버전으로 바꾸기 configure-any 필요한 모든 꾸러미를 설정 hold 고정 상태의 꾸러미라도 처리 bad-path PATH에 중요한 프로그램이 없는 문제가 있어도 계속 not-root root가 아닐 경우에도 설치(지우기)를 시도 overwrite 다른 꾸러미에 있는 파일을 덮어 쓰기 overwrite-diverted 전환된 파일을 전환되지 않은 파일로 덮어 쓰기 bad-verify 꾸러미 검사가 실패하더라도 설치 depends-version [!] 버전 의존성 문제를 경고로 취급 depends [!] 모든 의존성 문제를 경고로 취급 confnew [!] 물어보지 않고, 항상 색로운 설정 파일 사용 confold [!] 물어보지 않고, 항상 기존 설정 파일 사용 confdef [!] 새 설정 파일이 있으면 기본값 사용. 기본값이 없는 경우에는 confold나 confnew 옵션이 없으면 물어봅니다 confmiss [!] 항상 빠진 설정 파일을 설치 conflicts [!] 충돌하는 꾸러미라도 설치 허용 architecture [!] 꾸러미의 아키텍쳐가 달라도 처리 overwrite-dir [!] 다른 꾸러미에 있는 디렉토리를 덮어 쓰기 remove-reinstreq [!] 다시 설치해야 할 꾸러미 지우기 remove-essential [!] 없어선 안 될 꾸러미 지우기 경고 - [!]가 붙은 옵션을 사용하면 설치 상태를 심각하게 망가뜨릴 수 있습니다. [*]가 표시된 강제 옵션은 기본값으로 켜집니다.
예제
1.설치
dpkg --install hanterm , rpm -Uvh hanterm
2.지우기
dpkg --purge hanterm , dpkg --remove hanterm rpm -e hanterm
3.설치된 목록 중에서 한텀 패키지 찾기
dpkg --list | grep hanterm , rpm -qa | grep hanterm
4.설치하기 전에 정보 보기
dpkg --info hanterm , dpkg --contents hanterm , rpm -qpl hanterm
작성자 및 의견
최초 작성 2002년 11월 15일 -- 김기헌
예제 추가 2004년 05월 26일 -- 차차
강제옵션 더하기 2004년 10월 1일 -- 양유성