Package
1️⃣ 패키지 관리자 아키텍처
1.1 Debian 계열: dpkg
와 apt
┌──────────────────────┐
│ User/Application │
└─────────┬────────────┘
│ 요청: 설치/업데이트
┌─────────▼────────────┐
│ APT │ <-- 패키지 의존성 해결, 원격 repo 통신
└─────────┬────────────┘
│ 의존성 해결, .deb 선택
┌─────────▼────────────┐
│ DPKG │ <-- 실제 패키지 설치/삭제
└─────────┬────────────┘
│ 파일 시스템 반영
┌─────────▼────────────┐
│ /usr /etc /var │
└──────────────────────┘
-
dpkg
: 로컬.deb
파일 설치/삭제/정보 조회sudo dpkg -i package.deb dpkg -l | grep package
-
apt
: 원격 저장소(repo) 기반 설치/업데이트, 의존성 자동 처리sudo apt update sudo apt install nginx sudo apt upgrade
1.2 RHEL 계열: rpm
과 yum
/dnf
┌──────────────────────┐
│ User/Application │
└─────────┬────────────┘
│ 요청: 설치/업데이트
┌─────────▼────────────┐
│ YUM / DNF │ <-- 의존성 해결, repo 관리
└─────────┬────────────┘
│ 의존성 해결, .rpm 선택
┌─────────▼────────────┐
│ RPM │ <-- 실제 패키지 설치/삭제
└─────────┬────────────┘
│ 파일 시스템 반영
┌─────────▼────────────┐
│ /usr /etc /var │
└──────────────────────┘
-
rpm
: 로컬.rpm
설치/삭제/정보 조회sudo rpm -i package.rpm rpm -qa | grep package
-
yum
/dnf
: 원격 저장소 기반 설치/업데이트, 의존성 자동 처리sudo dnf install httpd sudo dnf update sudo dnf upgrade
2️⃣ GPG 키 & Repository 등록
- 실무 중요: 신뢰할 수 없는 repo 설치는 보안 문제 발생 가능
- Ubuntu/Debian 예시:
# 1. GPG 키 추가
curl -fsSL https://packages.example.com/gpg.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/example.gpg
# 2. Repo 등록
echo "deb [arch=amd64] https://packages.example.com/ubuntu jammy main" | sudo tee /etc/apt/sources.list.d/example.list
# 3. 패키지 목록 업데이트
sudo apt update
🔑 Tip: 항상 HTTPS 기반 repo 사용, GPG 검증 후 설치
3️⃣ Backport & EOL 패키지 관리
-
Backport: 새로운 패키지를 안정적인 배포판에 맞춰 제공
-
Ubuntu:
jammy-backports
-
설치 예:
sudo apt install -t jammy-backports nginx
-
-
EOL 패키지: 공식 repo에서 제거된 패키지
- 실무에서는 PPA 또는 사내 미러 활용
4️⃣ Ubuntu 22.04 실습 시나리오
목표: nginx 설치 + 특정 버전 설치 + repo 관리 + backport 활용
- 패키지 설치/정보 확인
sudo apt update
sudo apt install nginx
dpkg -l | grep nginx
- 특정 버전 설치
apt list -a nginx
sudo apt install nginx=1.22.0-1ubuntu1
- 백포트 패키지 설치
sudo apt install -t jammy-backports nginx
- 새로운 repo 등록 후 패키지 설치
curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/nginx.gpg
echo "deb https://nginx.org/packages/ubuntu/ jammy nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
sudo apt update
sudo apt install nginx
- 패키지 삭제 및 청소
sudo apt remove nginx
sudo apt autoremove
sudo apt clean
5️⃣ 실무에서 자주 쓰는 개념
개념 | 실무 포인트 |
---|---|
Repository 관리 | 사내 mirror, 외부 repo 사용 시 GPG 검증 필수 |
Backport | 안정 배포판에서 최신 기능 사용 |
EOL 패키지 | 보안 패치 적용 어려움 → Docker / PPA 활용 |
dpkg vs apt | dpkg → 로컬 패키지, apt → 원격 설치 및 의존성 해결 |
yum/dnf vs rpm | rpm → 로컬 패키지, yum/dnf → 원격 repo 기반 설치 |
마지막 수정일자