39. Configure the Repositories of Package Manager
개요
Ubuntu의 패키지 매니저는 소프트웨어 배포를 위해 저장소(repository)에 의존합니다. 공식 저장소, 서드파티 소스, PPA(Personal Package Archives)를 지원하여 기본 제공 이상의 광범위한 애플리케이션에 접근할 수 있습니다.
sources.list 란?
sources.list는 APT가 패키지를 가져올 저장소 목록을 정의하는 설정 파일입니다.
| 경로 | 설명 |
|---|---|
/etc/apt/sources.list | 구버전 Ubuntu의 메인 설정 파일 (단일 파일) |
/etc/apt/sources.list.d/ubuntu.sources | Ubuntu 22.04+ 새 형식 (DEB822) |
/etc/apt/sources.list.d/*.list | 서드파티 저장소 추가 파일 |
확인 방법:
cat /etc/apt/sources.list
# 또는 (Ubuntu 22.04+)
cat /etc/apt/sources.list.d/ubuntu.sources
.list.d/ 폴더를 사용하나?메인 파일 하나에 모두 쓰는 대신, 저장소별로 파일을 분리하면 관리가 쉬워집니다. 서드파티 저장소를 제거할 때 해당 파일만 삭제하면 됩니다.
저장소 설정 구조
Ubuntu 22.04 이상은 저장소 설정을 /etc/apt/sources.list.d/ubuntu.sources에 저장합니다. 설정에는 4가지 핵심 구성 요소가 있습니다:
Types: 저장소 형식 지정. "deb"는 .deb 패키지 형식의 실행 프로그램, 설정 파일, 문서를 포함하는 Debian 스타일 저장소를 나타냅니다.
URIs: 저장소 위치를 가리킵니다. 예: http://us.archive.ubuntu.com/ubuntu/는 Ubuntu 공식 미러 서버를 가리킵니다.
Suites: 릴리즈별 패키지 그룹을 정의합니다:
- noble: 현재 릴리즈의 핵심 패키지
- noble-updates: 버그 수정 및 보안 패치
- noble-backports: 최신 Ubuntu 버전의 패키지
Components: 라이선스 및 지원 상태로 패키지를 분류합니다:
- Main: 공식 지원 오픈소스 소프트웨어
- Restricted: 사용 제한이 있는 오픈소스
- Universe: 비지원 오픈소스 소프트웨어
- Multiverse: 라이선스 제한이 있는 비무료 패키지
서드파티 저장소 추가
공식 저장소에 없는 소프트웨어가 필요할 때 서드파티 소스를 추가합니다. 프로세스:
curl을 사용하여 패키지 검증용 공개 키 다운로드curl "https://download.docker.com/linux/ubuntu/gpg" -o docker.keygpg --dearmor로 바이너리 형식으로 변환gpg --dearmor docker.key/etc/apt/keyrings/에 키 저장sudo mv docker.key.gpg /etc/apt/keyrings//etc/apt/sources.list.d/에 설정 파일 생성 → 아래 실전 예시 참고
실전 예시 — docker.list 파일 직접 생성
/etc/apt/sources.list.d/에 직접 .list 파일을 생성하는 방법도 있습니다:
sudo vim /etc/apt/sources.list.d/docker.list
파일 내부에 아래 한 줄 입력:
deb [signed-by=/etc/apt/keyrings/docker.key.gpg] https://download.docker.com/linux/ubuntu noble stable
deb— 바이너리 패키지 저장소 형식signed-by=...— 패키지 서명 검증에 사용할 GPG 키 경로https://download.docker.com/linux/ubuntu— Docker 공식 저장소 URLnoble— Ubuntu 24.04 (Noble Numbat) 코드네임stable— 안정화 채널
저장 후 패키지 데이터베이스 갱신:
sudo apt update
갱신 결과에 Docker 저장소가 포함된 것을 확인할 수 있습니다:
Hit:1 https://download.docker.com/linux/ubuntu noble InRelease
Get:2 https://download.docker.com/linux/ubuntu noble/stable amd64 Packages [...]
.list 파일 방식은 한 줄로 간단하게 저장소를 추가할 때 사용합니다. 반면 ubuntu.sources 형식(DEB822)은 여러 저장소를 구조적으로 관리할 때 유용합니다.
PPA (Personal Package Archives)
PPA는 커뮤니티 유지 저장소를 간편하게 추가하는 방법입니다.
PPA 추가:
sudo add-apt-repository ppa:graphics-drivers/ppa
활성화된 PPA 목록 확인:
sudo add-apt-repository --list
PPA 제거:
sudo add-apt-repository --remove ppa:graphics-drivers/ppa
최종 설정
저장소 수정 후 항상 다음 명령을 실행하여 시스템이 사용 가능한 모든 패키지와 업데이트를 인식하도록 합니다:
sudo apt update