Skip to content

APT 패키지 관리 시스템

APT(Advanced Package Tool)는 Debian 시스템의 핵심 패키지 관리 도구입니다. 본 튜토리얼에서는 APT를 사용하여 소프트웨어 패키지를 설치, 업데이트, 삭제하는 방법을 가르쳐 드립니다.

🎯 APT 기본 개념

APT란 무엇인가요?

APT는 Debian 시스템의 패키지 관리 도구로, 다음과 같은 역할을 담당합니다:

  • 📦 소프트웨어 패키지 설치: 저장소에서 소프트웨어를 다운로드하고 설치
  • 🔄 의존성 처리: 소프트웨어 패키지 의존 관계를 자동으로 해결
  • ⬆️ 시스템 업데이트: 설치된 소프트웨어 패키지 업그레이드
  • 🗑️ 소프트웨어 제거: 필요하지 않은 소프트웨어를 안전하게 제거

소프트웨어 저장소(Repository)

소프트웨어 저장소는 패키지의 저장소입니다:

bash
# 주요 소프트웨어 저장소 유형
main        # Debian 공식에서 유지 관리하는 자유 소프트웨어
contrib     # 비자유 소프트웨어에 의존하는 자유 소프트웨어
non-free    # 비자유 소프트웨어
security    # 보안 업데이트
updates     # 안정판 업데이트

🔧 APT 기본 명령어

패키지 목록 업데이트

APT 사용 전, 먼저 패키지 목록을 업데이트하세요:

bash
# 패키지 목록 업데이트 (사용 전마다 실행 권장)
sudo apt update

# 출력 예시:
# 命中:1 http://deb.debian.org/debian bookworm InRelease
# 获取:2 http://security.debian.org/debian-security bookworm-security InRelease [48.0 kB]
# 读取软件包列表... 完成

💡 초보자 팁

apt update는 패키지 목록만 업데이트하며, 실제로 어떤 소프트웨어도 설치하거나 업그레이드하지 않습니다. 이 명령어는 "상점 상품 목록 새로 고침"과 유사합니다.

패키지 설치

단일 패키지 설치

bash
# 기본 설치 명령어
sudo apt install 패키지명

# 예시: 텍스트 에디터 설치
sudo apt install vim

# 상세 정보 표시하며 설치
sudo apt install -v firefox-esr

여러 패키지 설치

bash
# 한 번에 여러 패키지 설치
sudo apt install git curl wget

# 특정 버전 설치
sudo apt install python3=3.11.2-1

# 재설치 (손상된 설치 복구)
sudo apt install --reinstall firefox-esr

권장 패키지 설치

bash
# 권장 패키지를 포함하여 설치
sudo apt install --install-suggests libreoffice

# 권장 패키지 설치하지 않기 (기본 동작)
sudo apt install --no-install-suggests gimp

패키지 검색

기본 검색

bash
# 패키지 이름과 설명 검색
apt search 키워드

# 예시: 에디터 검색
apt search editor

# 특정 기능 검색
apt search "media player"

정확한 검색

bash
# 패키지 이름만 검색
apt search --names-only firefox

# 정규 표현식으로 검색
apt search '^python3-'

패키지 정보 표시

bash
# 패키지 상세 정보 표시
apt show 패키지명

# 예시
apt show firefox-esr

# 설치된 버전 정보 표시
apt list --installed firefox-esr

# 사용 가능한 버전 표시
apt list firefox-esr

시스템 업그레이드

설치된 패키지 업그레이드

bash
# 업데이트 가능한 모든 패키지 업그레이드
sudo apt upgrade

# 특정 패키지 업그레이드
sudo apt upgrade firefox-esr

# 완전 업그레이드 (충돌하는 패키지 삭제 포함)
sudo apt full-upgrade

보안 업그레이드

bash
# 보안 업데이트만 설치
sudo apt upgrade -s | grep security
sudo apt install $(apt list --upgradable 2>/dev/null | grep security | cut -d/ -f1)

패키지 삭제

패키지 제거

bash
# 패키지 제거 (설정 파일 보존)
sudo apt remove 패키지명

# 예시
sudo apt remove firefox-esr

# 완전 삭제 (설정 파일 포함)
sudo apt purge 패키지명

# 불필요한 의존성 자동 제거
sudo apt autoremove

시스템 정리

bash
# 다운로드된 패키지 파일 캐시 정리
sudo apt clean

# 오래된 패키지 파일만 정리
sudo apt autoclean

# 고립된 패키지 제거
sudo apt autoremove --purge

📋 추천 패키지 목록

개발 도구

bash
# 기본 개발 도구
sudo apt install build-essential

# Git 버전 관리
sudo apt install git

# 코드 에디터
sudo apt install vim nano code

# 프로그래밍 언어
sudo apt install python3 python3-pip nodejs npm

멀티미디어 도구

bash
# 오디오 플레이어
sudo apt install audacity rhythmbox

# 비디오 플레이어
sudo apt install vlc mpv

# 이미지 편집
sudo apt install gimp inkscape

# 오디오/비디오 코덱
sudo apt install ubuntu-restricted-extras

네트워크 도구

bash
# 네트워크 진단
sudo apt install net-tools curl wget

# 다운로드 도구
sudo apt install aria2 youtube-dl

# 브라우저
sudo apt install firefox-esr chromium

오피스 소프트웨어

bash
# LibreOffice 오피스 제품군
sudo apt install libreoffice

# PDF 리더
sudo apt install evince okular

# 마인드맵
sudo apt install freemind

⚙️ 소프트웨어 저장소 관리

현재 저장소 확인

bash
# 저장소 설정 확인
cat /etc/apt/sources.list

# 추가 저장소 확인
ls /etc/apt/sources.list.d/

저장소 편집

bash
# 주요 저장소 파일 편집
sudo nano /etc/apt/sources.list

# Debian 13 (Trixie) 전체 저장소 설정 (비자유 소프트웨어 및 펌웨어 포함):
deb http://deb.debian.org/debian trixie main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian trixie main contrib non-free non-free-firmware

deb http://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware
deb-src http://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware

deb http://deb.debian.org/debian trixie-updates main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian trixie-updates main contrib non-free non-free-firmware

non-free와 non-free-firmware의 차이점

  • non-free-firmware: 하드웨어 펌웨어 (WiFi, 그래픽 카드, 블루투스 펌웨어 등), Debian 13에 추가된 전용 구성 요소
  • non-free: 기타 비자유 소프트웨어 (NVIDIA 드라이버 래퍼, 독점 폰트 등)

NVIDIA 드라이버(nvidia-driver)와 같은 비자유 소프트웨어를 설치해야 하는 경우, 반드시 non-free 구성 요소도 함께 유지해야 합니다.

중국 미러 사용

다운로드 속도를 높이기 위해 중국 미러를 사용할 수 있습니다:

bash
# 원본 파일 백업
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup

# 저장소 편집
sudo nano /etc/apt/sources.list

칭화대학교 미러:

bash
# 칭화대학교 미러 저장소
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ trixie main contrib non-free-firmware
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ trixie main contrib non-free-firmware

deb https://mirrors.tuna.tsinghua.edu.cn/debian-security trixie-security main contrib non-free-firmware
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security trixie-security main contrib non-free-firmware

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ trixie-updates main contrib non-free-firmware
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ trixie-updates main contrib non-free-firmware

중국과학기술대학교 미러:

bash
# 중국과학기술대학교 미러 저장소
deb https://mirrors.ustc.edu.cn/debian/ trixie main contrib non-free-firmware
deb-src https://mirrors.ustc.edu.cn/debian/ trixie main contrib non-free-firmware

deb https://mirrors.ustc.edu.cn/debian-security/ trixie-security main contrib non-free-firmware
deb-src https://mirrors.ustc.edu.cn/debian-security/ trixie-security main contrib non-free-firmware

deb https://mirrors.ustc.edu.cn/debian/ trixie-updates main contrib non-free-firmware
deb-src https://mirrors.ustc.edu.cn/debian/ trixie-updates main contrib non-free-firmware

서드파티 저장소 추가

GPG 키 추가

bash
# GPG 키 다운로드 및 추가
wget -qO - https://example.com/key.gpg | sudo apt-key add -

# 현대적 방법 (권장)
wget -qO - https://example.com/key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/example-keyring.gpg

저장소 추가

bash
# 새로운 저장소 파일 생성
echo "deb [signed-by=/usr/share/keyrings/example-keyring.gpg] https://example.com/debian stable main" | sudo tee /etc/apt/sources.list.d/example.list

# 패키지 목록 업데이트
sudo apt update

🔍 고급 APT 작업

패키지 의존성

bash
# 패키지 의존성 확인
apt depends 패키지명

# 이 패키지에 의존하는 패키지 확인
apt rdepends 패키지명

# 설치 시뮬레이션 (실제 설치하지 않음)
sudo apt install -s 패키지명

패키지 파일 작업

bash
# 패키지 파일 다운로드 (설치하지 않음)
apt download 패키지명

# 패키지 내 파일 목록 확인
dpkg -L 패키지명

# 파일이 속한 패키지 찾기
dpkg -S /path/to/file

# 패키지 설치 스크립트 확인
apt-get source 패키지명

버전 관리

bash
# 패키지 버전 고정 (업그레이드 방지)
sudo apt-mark hold 패키지명

# 버전 고정 해제
sudo apt-mark unhold 패키지명

# 고정된 패키지 확인
apt-mark showhold

# 패키지 다운그레이드 (사용 가능한 이전 버전 필요)
sudo apt install 패키지명=버전번호

🛡️ 보안 및 모범 사례

보안 업데이트

bash
# 자동 보안 업데이트 설정
sudo apt install unattended-upgrades

# 자동 업데이트 구성
sudo dpkg-reconfigure unattended-upgrades

# 수동 보안 업데이트 확인
sudo unattended-upgrade --dry-run

시스템 유지 관리

bash
# 정기 유지 관리 명령어 (주간 실행 권장)
sudo apt update && sudo apt upgrade
sudo apt autoremove
sudo apt autoclean

# 시스템 무결성 확인
sudo apt check

# 손상된 패키지 복구
sudo apt install -f

백업 및 복원

bash
# 설치된 패키지 목록 내보내기
dpkg --get-selections > installed-packages.txt

# 패키지 목록 복원
sudo dpkg --set-selections < installed-packages.txt
sudo apt-get dselect-upgrade

🆘 문제 해결

일반적인 문제

GPG 키 오류

bash
# 문제: NO_PUBKEY 오류
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 키ID

# 또는 현대적 방법 사용
wget -qO - https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x키ID | sudo gpg --dearmor -o /usr/share/keyrings/package-keyring.gpg

패키지 의존성 문제

bash
# 손상된 의존성 복구
sudo apt install -f

# 정리 및 재구성
sudo dpkg --configure -a

# 문제 있는 패키지 강제 삭제
sudo dpkg --remove --force-remove-reinstreq 패키지명

디스크 공간 부족

bash
# 패키지 캐시 정리
sudo apt clean

# 불필요한 패키지 제거
sudo apt autoremove --purge

# 대용량 파일 찾기
sudo du -h /var/cache/apt/archives/

📱 그래픽 인터페이스 패키지 관리

Synaptic 패키지 관리자

bash
# 그래픽 인터페이스 패키지 관리자 설치
sudo apt install synaptic

# Synaptic 실행
sudo synaptic

GNOME 소프트웨어 센터

bash
# GNOME 소프트웨어 센터 설치
sudo apt install gnome-software

# 소프트웨어 센터 시작
gnome-software

다음 단계

APT 패키지 관리를 마스터한 후, 다음을 계속 학습할 수 있습니다:

  1. 시스템 서비스 관리 - 시스템 서비스 관리
  2. 사용자 권한 관리 - 사용자 및 권한 구성
  3. 네트워크 구성 - 네트워크 설정 및 관리

더 많은 시스템 관리 기술을 배우고 싶으신가요? 시스템 서비스 학습 계속하기 →