데비안 리눅스 패키지 매니저 dpkg와 apt
이 글은 리눅스의 패키지 매니저와 그 사용 방법을 설명한다.
얘기하기 전에 리눅스 배포판 얘기가 나오면 항상 그 종류가 너무 많아서 이번에 정리를 하려고 한다.
두 가지 주요 리눅스 배포판 - Debian, Redhat
모든 리눅스 배포판의 목록은 여기서 얻을 수 있다.
리눅스 배포판 간의 부모-자식 트리를 보면, 개수 기준으로(점유율 X) 대충 눈대중으로 계산했을 때
- Redhat 1/4
- Redhat은 아래의 배포판들을 제작한다.
- RHEL(GPL 기반 enterprise. 안정성 중점)
- CentOS(GPL + RHEL의 상표 제거 버전 - 커뮤니티 드리븐인데 레드헷에서 인수했다),
- Fedora(RHEL의 upstream 버전. 신규 기능 출시 중점)
- Redhat은 아래의 배포판들을 제작한다.
- Slackware 1/10
- 기타 전체 1/4
정도이므로, 나머지 Debian 기반의 리눅스 배포판의 개수는 전체 배포판 중 40%를 차지한다.
- Redhat 1/4
OpenSUSE도 여러 글에서 빠지지 않고 Wikipedia에서도 well-known으로 소개되는데, 기반 배포판이 없고, 파생 배포판도 유명한 게 없다.
점유율도 궁금해져서 찾아봤는데,
- Ubuntu 34%
- Debian 15% (Ubuntu가 아닌 Debian 및 자식 배포판인 듯하다)
- CentOS 10%
- Redhat 1% (RHEL)
- 알 수 없음 39%
[출처]
으로 Ubuntu가 강세였다. 다만 크고 보수적인 기업일수록 CentOS 혹은 RHEL을 쓰는 게 타당할 듯하다. Ubuntu가 좋지 못하다는 게 아니라, 아무래도 상용 OS 이니까 더 나은 면이 있을 수 밖에 없다고 생각한다.
Debian, Ubuntu의 패키지 매니저 dpkg, apt
dpkg
일단 dpkg는 데비안 배포판에 포함된 패키지 매니저로, 우분투 등의 데비안 기반 배포판에 모두 포함돼있다. dpkg는 설치, 제거, 설치된 패키지 조회가 가능하지만 기능 면에서 부족하다. dpkg는 설치 파일로 .deb
확장자를 쓰며 사용자들이 직접 dpkg로 패키지를 관리하지는 않는다.
Ubuntu가 아닌 Debian도 apt를 사용한다. 즉 apt 역시 모든 데비안 배포판에 포함된 패키지 매니저이다.
1 | # 패키지 설치 |
apt
apt는 사용자들이 사용하는 패키지 매니저이며, dpkg를 감싼 것으로 더 많은 기능을 제공한다.
apt는 프론트엔드라고 불리는데, apt의 주요 기능은 다음과 같다:
- Search for new packages.
- Upgrade packages.
- Install or remove packages (dpkg와 동일).
- Upgrade the whole system to a new release (= OS 버전 업그레이드).
apt로 묶이는 도구들은 다음과 같다:
- apt-get for retrieval of packages and information about them from authenticated sources and for installation, upgrade and removal of packages together with their dependencies
- apt-cache for querying available information about installed as well as available packages
- apt-cdrom to use removable media as a source for packages
- apt-config as an interface to the configuration settings
- apt-key as an interface to manage authentication keys
- apt-extracttemplates to be used by debconf to prompt for configuration questions before installation
- apt-ftparchive creates Packages and other index files needed to publish an archive of deb packages
- apt-sortpkgs is a Packages/Sources file normalizer
- apt is a high-level command-line interface for better interactive usage
여기서 apt만 사용할 줄 알면 충분하다.
우리가 흔하게 사용하는 apt 명령어를 돌아보자.
1 | # 쉽고 직관적인 명령어 |
이 중 평소 따라치라고 해서 따라쳤지만 정확히 무슨 의미인지 몰랐던 명령어들을 정리한다.
1 | # 패키지 목록을 갱신한다. |
어떤 패키지의 최신 버전을 설치하려면 설치 전에 apt update
를 하는 것은 중요하다.
다만 apt upgrade
등의 작업은 모든 패키지 대상이므로 대개 예상치 못한 결과를 가져올 수 있을 듯하다.
아래는 기타 apt 명령어를 정리한 것이다.
1 | # purge는 remove와 다르게, '설정' 파일도 제거한다. |
데비안 리눅스 패키지 매니저 dpkg와 apt