[리눅스 패키지 관리] apt? apt-get?

2025. 5. 29. 14:38·linux
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
'linux' 카테고리의 다른 글
  • [Linux sudo 설정] 비밀번호 없이 sudo 사용 및 기타 유용한 Defaults 설정
  • [리눅스 SSH 접속] RSA 키페어로 인증하는 방법 (feat. Mac → Ubuntu)
  • [리눅스 inode] ln 명령어 하드링크 vs 심볼릭링크
  • [리눅스 디스크 관리] linux disk 파티션, mount
highgarden
highgarden
커밋 하나하나가 쌓여 커다란 정원이 되는 중입니다. 하루하루 정성껏 심어가는 중 https://github.com/highgarden7
  • highgarden
    커밋심는 정원
    highgarden
  • 전체
    오늘
    어제
    • 분류 전체보기 (37)
      • ai (1)
      • devops (2)
      • Nest.js (14)
      • linux (14)
      • 네트워크 (6)
      • git (0)
      • aws (0)
      • docker (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    네트워크
    vercel
    E2E
    springboot
    Java
    githib action
    IP
    Chat GPT
    Linux
    nestjs
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
highgarden
[리눅스 패키지 관리] apt? apt-get?
상단으로

티스토리툴바