dpkg는 「.deb 파일을 직접 다루는 저수준 도구」.
apt가 dpkg를 호출해 의존성 처리·다운로드·등록을 하는 wrapper 같은 관계.
기본.
sudo dpkg -i package.deb — 단일 .deb 파일 설치.
dpkg -l — 모든 설치된 패키지 목록.
dpkg -L package — 그 패키지가 설치한 파일 목록.
dpkg -S /path/to/file — 그 파일이 어느 패키지에서 왔나.
활용.
1) 인터넷에서 직접 받은 .deb 설치 — apt 저장소에 없는 SW.
2) 패키지가 설치한 파일 추적 — 「이 명령 어느 패키지지」 파악.
3) 의존성 디버깅.
dpkg -i의 한계.
의존성을 자동 해결 안 함 — 의존하는 다른 패키지가 없으면 「dependency 미충족」 에러.
그래서 모던 워크플로 — sudo apt install ./local.deb처럼 apt를 통해 설치(.deb의 의존성도 자동 처리).
dpkg 데이터베이스.
/var/lib/dpkg/에 모든 패키지 정보.
status 파일에 설치 상태, info/에 패키지별 메타데이터.
apt도 이 데이터베이스를 사용 — 「리눅스의 패키지 진실의 원천」.
한 줄 요약
dpkg는 .deb 저수준 도구 — apt가 호출하는 backend.
dpkg -i 설치, -l 목록, -L 파일, -S 파일→패키지 추적.
의존성은 안 풀어 — apt install ./file.deb가 더 안전.
더 알아볼 것
- dpkg-reconfigure로 재설정
- alien — rpm을 deb로 변환
- dpkg-statoverride로 권한 오버라이드