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-firmwarenon-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 synapticGNOME 소프트웨어 센터
bash
# GNOME 소프트웨어 센터 설치
sudo apt install gnome-software
# 소프트웨어 센터 시작
gnome-software다음 단계
APT 패키지 관리를 마스터한 후, 다음을 계속 학습할 수 있습니다:
- 시스템 서비스 관리 - 시스템 서비스 관리
- 사용자 권한 관리 - 사용자 및 권한 구성
- 네트워크 구성 - 네트워크 설정 및 관리
더 많은 시스템 관리 기술을 배우고 싶으신가요? 시스템 서비스 학습 계속하기 →