리눅스에서 Repository(리포지토리) 는 운영체제와 소프트웨어를 설치·업데이트하기 위한 “패키지 저장소”를 의미한다. 쉽게 말하면 프로그램 파일, 라이브러리, 의존성 정보, 업데이트 패키지 등을 모아둔 서버다. 윈도우에서 프로그램을 직접 다운로드해 설치하는 방식과 달리, 리눅스는 대부분 리포지토리를 통해 패키지를 중앙 관리한다.
리눅스는 대부분의 소프트웨어를 “패키지(package)” 형태로 관리한다.
예를 들어 Ubuntu에서는 .deb, Rocky Linux나 CentOS에서는 .rpm 패키지를 사용한다.
이 패키지들은 인터넷상의 특정 서버에 저장되는데, 그 저장소가 바로 Repository다.
대표적인 흐름은 다음과 같다.
sudo apt install nginx
또는
sudo dnf install nginx
위 명령을 실행하면 시스템은:
를 수행한다.
즉, Repository는 단순 다운로드 서버가 아니라:
기능까지 담당한다.
리포지토리는 보통 다음 요소로 구성된다.
예:
nginx-1.24.0.rpm
python3-3.12.deb
실제 설치되는 프로그램 파일이다.
패키지 설명 정보다.
예:
패키지 관리자는 이 메타데이터를 읽어 자동 설치를 수행한다.
패키지가 변조되지 않았는지 확인한다.
예:
rpm --import RPM-GPG-KEY
또는:
apt-key add
현재는 signed-by= 방식 사용이 증가하고 있다.
리눅스 배포판마다 Repository 관리 방식이 다르다.
패키지 관리자:
aptdpkgRepository 설정 파일:
/etc/apt/sources.list
/etc/apt/sources.list.d/
예시:
deb http://archive.ubuntu.com/ubuntu jammy main restricted
설명:
|
항목 |
의미 |
|---|---|
|
deb |
바이너리 패키지 |
|
URL |
저장소 주소 |
|
jammy |
Ubuntu 버전 |
|
main |
저장소 영역 |
패키지 관리자:
yumdnfrpm설정 위치:
/etc/yum.repos.d/
예시:
[baseos]
name=Rocky Linux BaseOS
baseurl=http://mirror.rockylinux.org/
enabled=1
gpgcheck=1
패키지 관리자:
pacman설정 파일:
/etc/pacman.conf
배포판 공식 저장소다.
예:
장점:
단점:
외부 업체가 제공한다.
예:
예시:
sudo dnf config-manager --add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
장점:
단점:
사내 서버나 폐쇄망 환경에서 직접 운영한다.
예:
주로:
createrepoapt-mirrorreposync등으로 구축한다.
패키지 설치 전 보통 다음 명령을 수행한다.
Ubuntu:
sudo apt update
Rocky:
sudo dnf makecache
이 과정에서:
을 수행한다.
이후 설치 시 실제 패키지를 다운로드한다.
전 세계 사용자가 하나의 서버만 사용하면 느려진다.
그래서 리포지토리는 여러 Mirror 서버로 복제된다.
예:
Ubuntu 예시:
mirror.kakao.com
속도가 빠르고 트래픽 분산 효과가 있다.
리포지토리의 가장 중요한 기능 중 하나다.
예를 들어 nginx 설치 시:
sudo dnf install nginx
실제로는:
등 여러 패키지가 필요할 수 있다.
패키지 관리자는 리포지토리 메타데이터를 읽고 자동으로 함께 설치한다.
이것이 윈도우 수동 DLL 관리보다 훨씬 편리한 이유 중 하나다.
여러 Repository가 같은 패키지를 제공할 수 있다.
예:
이 경우 우선순위(priority)를 설정할 수 있다.
Rocky Linux:
priority=1
Ubuntu는 pinning 기능 사용:
/etc/apt/preferences
리포지토리는 시스템 전체 권한으로 패키지를 설치하므로 매우 중요하다.
위험 요소:
따라서:
이 중요하다.
RHEL 계열 추가 패키지 저장소.
예:
sudo dnf install epel-release
최신 Docker 제공.
PHP 최신 버전 제공.
커널/드라이버 제공.
기업 환경에서는 인터넷 없이 운영하기도 한다.
대표 방식:
reposync
createrepo
nginx/httpd 배포
흐름:
장점:
현재는 Docker/쿠버네티스 환경에서도 Repository 개념이 매우 중요하다.
예:
모두 “패키지 저장소” 개념의 확장이다.
리눅스 Repository는 단순 다운로드 서버가 아니라:
를 담당하는 핵심 인프라다.
현대 리눅스 운영에서 Repository 이해는 매우 중요하며, 특히:
분야에서는 필수 지식으로 여겨진다.
특히 실무에서는:
원칙이 매우 중요하다.