728x90
반응형

리눅스를 처음 접했을 때 가장 먼저 치게 되는 명령어 중 하나가 바로 apt install.
그런데 문서를 보다 보면 apt-get도 있고, 심지어 dpkg라는 것도 있다.
"이거 다 같은 거야? 뭐부터 써야 돼?"
이번 글에서는 패키지 설치의 시작점인 dpkg부터 apt, apt-get까지
실제로 많이 쓰는 명령어를 중심으로 차이점과 실전 활용법을 정리해봤다.
dpkg – 패키지 관리의 가장 낮은 레벨
dpkg -i package.deb # 설치
dpkg -r packagename # 제거
dpkg -l # 설치된 패키지 목록
dpkg -s packagename # 패키지 상태 확인
dpkg -L packagename # 설치된 파일 경로 확인
- ✔️
.deb파일을 직접 다룰 수 있다. - ✔️ 하지만 의존성 해결이 되지 않기 때문에 일반 사용자에겐 어렵다.
- ✔️
apt와apt-get은 결국 내부적으로dpkg를 호출하지만, 자동 의존성 처리까지 해준다.
apt – 요즘은 이걸 먼저 쓴다
apt install packagename
apt remove packagename
apt update
apt upgrade
- ✔️ apt는 apt-get, apt-cache, dpkg 등의 기능을 통합해서 사용자 친화적 인터페이스로 만든 명령어
- ✔️ Ubuntu 16.04 이후로는 기본 추천 도구가 됨
- ✔️ 더 짧고, 직관적인 출력을 제공한다
apt vs apt-get – 뭐가 다른 걸까?
| 항목 | apt | apt-get |
|---|---|---|
| 등장 시기 | Ubuntu 16.04 이후 | 훨씬 오래됨 |
| 출력 메시지 | 컬러, 진행바 있음 | 단순 텍스트 |
| 명령어 | 통합적 (apt install, apt list) |
명확히 분리됨 (apt-get, apt-cache) |
| 스크립트 자동화용 | ❌ 비권장 | ✅ 자동화에 안정적 |
정리:
-apt는 사람이 쓰기 좋음
-apt-get은 스크립트나 서버 자동화에 여전히 많이 쓰임
예제 비교
apt install nginx # 사용자 친화적
apt-get install nginx # 더 구버전 호환
apt list --installed # 설치된 패키지 리스트 (apt만 가능)
apt-get list # ❌ (불가능)
/etc/apt/sources.list 와 sources.list.d/ 이해하기
리눅스에서 패키지를 어디서 받을지는 APT 저장소 정보에 따라 결정된다.
/etc/apt/sources.list
- ✔️ 메인 저장소 주소가 저장된 파일
- ✔️ 기본적으로 다음과 같은 형태:
deb http://archive.ubuntu.com/ubuntu jammy main restricted universe multiverse
/etc/apt/sources.list.d/*.list
- ✔️ 별도의 저장소를 추가할 때 여기에 .list 파일을 둔다.
- ✔️ 예: Docker, VSCode, Node.js 등 외부 저장소를 추가할 때 여기에 등록됨
sudo add-apt-repository ppa:neovim-ppa/unstable
cat /etc/apt/sources.list.d/neovim-ppa-unstable.list
새 저장소를 추가한 후에는 반드시 sudo apt update로 인덱스를 갱신해야 함
패키지 설치 시 의존성 – APT가 해결해준다
의존성(dependency)이란?
- ✔️ 어떤 패키지를 설치하려면, 그에 필요한 다른 패키지들이 먼저 설치되어 있어야 함
- ✔️ 예: htop 설치 시 → libncurses, libtinfo 등의 라이브러리가 자동으로 함께 설치됨
APT는 자동 해결
sudo apt install htop
→ 내부적으로 필요한 라이브러리들을 자동으로 찾아서 설치해줌
의존성 확인하기
apt-cache depends htop
또는 설치 후 다음으로 확인 가능:
apt show htop
요약
| 개념 | 설명 |
|---|---|
dpkg |
가장 낮은 수준의 .deb 파일 설치 도구. 의존성 직접 해결 필요 |
apt |
사용자 친화적인 통합 도구. apt-get보다 출력이 보기 좋음 |
apt-get |
구버전 호환, 자동화/스크립트에 적합 |
/etc/apt/sources.list |
APT 저장소의 메인 구성 파일 |
sources.list.d/ |
외부 저장소를 따로 관리하는 디렉토리 |
| 의존성 해결 | apt가 자동 처리해준다 |
마무리
처음에는 apt, apt-get, dpkg가 비슷한 명령어처럼 보이겠지만,
조금만 구조를 파악하고 나면 각자의 쓰임이 명확히 구분된다.
apt는 사람이 편하게 쓰기 위한 인터페이스고,apt-get과 dpkg는 시스템 수준에서 탄탄한 백업을 해주는 개념이다.
리눅스 서버에서 뭔가를 설치할 일이 많다면 꼭 정리해두자.
특히 /etc/apt/sources.list.d/ 구조를 잘 이해하고 있어야,
에러 났을 때 빠르게 원인 찾을 수 있다.
728x90
반응형
'linux' 카테고리의 다른 글
| [Linux sudo 설정] 비밀번호 없이 sudo 사용 및 기타 유용한 Defaults 설정 (2) | 2025.07.24 |
|---|---|
| [리눅스 SSH 접속] RSA 키페어로 인증하는 방법 (feat. Mac → Ubuntu) (3) | 2025.06.02 |
| [리눅스 inode] ln 명령어 하드링크 vs 심볼릭링크 (0) | 2025.05.29 |
| [리눅스 디스크 관리] linux disk 파티션, mount (1) | 2025.05.28 |
| [리눅스 프로세스 관리] ps와 kill 명령어 + 시그널까지 한 번에 정리하기 (0) | 2025.05.28 |