리눅스에서 소프트웨어(패키지)를 효율적으로 관리하기 위한 도구입니다.
소스 코드를 직접 컴파일하지 않고, 미리 빌드된 패키지를 설치·삭제·업데이트할 수 있습니다.
패키지 매니저는 의존성(Dependency) 관리를 자동으로 해 줍니다.
예: 어떤 프로그램이 다른 라이브러리에 의존하면, 자동으로 함께 설치.
패키지: 프로그램, 라이브러리, 설정 파일 등을 묶어 배포하는 단위.
보통 압축 파일 형태이며, 메타데이터(버전, 의존성 정보 등)를 포함합니다.
주요 패키지 형식
.deb : Debian 계열 (Debian, Ubuntu 등)
.rpm : Red Hat 계열 (RHEL, CentOS, Fedora 등)
리눅스 배포판에 따라 사용하는 패키지 매니저가 다릅니다.
APT (Advanced Package Tool)
상위 수준의 패키지 관리 도구.
.deb 패키지를 관리.
명령어 예시:
sudo apt update # 패키지 목록 갱신
sudo apt upgrade # 설치된 패키지 최신 버전으로 업그레이드
sudo apt install vim # vim 설치
sudo apt remove vim # vim 삭제
sudo apt search nano # nano 검색
dpkg (Debian Package)
더 저수준 도구. 단일 .deb 파일 설치에 사용.
예:
sudo dpkg -i package.deb
sudo dpkg -r package_name
YUM (Yellowdog Updater, Modified)
RHEL, CentOS 7까지 기본 패키지 관리자.
명령어 예시:
sudo yum install httpd # Apache 설치
sudo yum remove httpd # 삭제
sudo yum update # 전체 업데이트
DNF (Dandified YUM)
Fedora, RHEL/CentOS 8 이후 기본. YUM의 개선판.
명령어 예시:
sudo dnf install nginx
sudo dnf remove nginx
sudo dnf upgrade
zypper 사용
sudo zypper install git
sudo zypper remove git
sudo zypper update
pacman 사용
패키지 파일 확장자: .pkg.tar.zst
명령어 예시:
sudo pacman -Syu # 시스템 업데이트
sudo pacman -S firefox # 설치
sudo pacman -R firefox # 삭제
패키지 매니저가 제공하는 주요 기능은 대부분 비슷합니다.
패키지 설치 (install)
패키지 제거 (remove, erase)
패키지 검색 (search)
패키지 정보 확인 (info, show)
시스템 업데이트 (update, upgrade)
의존성 자동 해결
패키지 매니저는 **저장소(Repo)**에서 소프트웨어를 다운로드합니다.
저장소는 공식 저장소와 서드파티 저장소로 나뉩니다.
/etc/apt/sources.list, /etc/yum.repos.d/ 같은 설정 파일에서 저장소를 관리할 수 있습니다.
패키지 매니저: 미리 빌드된 패키지를 쉽게 설치, 관리. (편리, 안전)
소스 빌드(compile): 사용자가 직접 ./configure && make && make install. (최신 버전 가능하지만 번거롭고 관리 어려움)
sudo apt update # 저장소 인덱스 갱신
sudo apt install curl # curl 설치
curl --version # 버전 확인
sudo apt remove curl # curl 제거
sudo apt autoremove # 불필요한 패키지 자동 제거