바뀜

둘러보기로 가기 검색하러 가기
5,544 바이트 추가됨 ,  2017년 5월 7일 (일) 21:31
새 문서: 앞에서 설명한 것과 같이 dselect, apt의 작업을 실제적으로 수행하는 것은 dpkg 패키지 관리 도구이다. 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일 -- 양유성

둘러보기 메뉴