목차
리눅스 시스템에서 소프트웨어를 실행하는데 필요한 모든 파일과 메타데이터를 포함하는 묶음이다
•
소스 패키지
◦
소스 코드와 관련된 파일을 포함하고 있으며, 사용자가 이를 컴파일하여 실행 가능한 바이너리 파일로 변환해야 한다
•
바이너리 패키지
◦
이미 컴파일된 실행 파일과 필요한 라이브러리, 설정 파일 등을 포함하여 사용자가 쉽게 설치할 수 있도록 만들어진 패키지이다
관리 방식
1.
저수준 패키지
•
패키지 간 의존성을 알지 못함
•
dpkg, rpm
2.
고수준 패키지
•
패키지의 의존성을 알아서 해결
•
apt-get, apt, yum, dnf
Package Repository
•
인터넷의 특정 주소로부터 필요한 패키지를 다운로드 받아 사용
•
패키지 정보(이름, 버전, 설명, …)을 가짐
•
sources.list
◦
deb-src: 바이너리/소스 패키지 저장소
◦
url: 저장소 주소
◦
distribution: 리눅스 버전
◦
component
▪
main 표준
▪
restricted 공식 지원 개인
▪
universe 커뮤니티 지원
▪
multiuniverse 공식 지원 x 개인
Package Dependencies
패키지 의존성이란 소프트웨어 패키지가 정상적으로 작동하기 위해 다른 특정 패키지나 라이브러리에 의존해야 하는 관계를 의미한다. 즉, 하나의 패키지가 설치되기 위해선 특정한 다른 패키지가 먼저 설치되어 있어야 한다는 것이다.
의존하는 패키지 중 하나가 설치되지 않거나, 버전이 맞지 않는 경우, 해당 소프트웨어가 제대로 작동하지 않을 수 있다. 여러 패키지 간의 의존성 문제는 소프트웨어의 안정성과 호환성에 영향을 미친다.
따라서 대부분의 리눅스 배포판에서는 바이너리 패키지를 사용하여 소프트웨어를 설치한다. 이미 컴파일된 형태로 제공되어, 사용자가 의존성 문제를 해결하는데 도움을 준다. 패키지 관리 시스템이 의존성을 자동으로 처리한다.
apt-get
apt 명령어 | apt-get 명령어 | 기능 |
apt update | apt-get update | /etc/apt/sources.list 파일의 내용 업데이트 |
apt install [package] | apt-get install [package] | 패키지 설치 |
apt upgrade | apt-get upgrade | 설치된 패키지 업데이트 |
apt remove [package] | apt-get remove [package] | 설치되어 있는 패키지 삭제 |
apt purge [package] | apt-get purge [package] | 설치되어 있는 패키지와 설정 파일 모두 삭제 |
apt autoremove | apt-get autoremove | 사용하지 않는 패키지 모두 삭제 |
apt full-upgrade | apt-get dist-upgrade | 모든 패키지를 업데이트하고 불필요한 의존성 제거 |
apt search [package] | apt-cache search [package] | 설치 전 패키지 정보 확인 |
apt show [package] | apt-cache show [package] | 패키지 세부 정보 표시 |
apt policy | apt-cache policy | 활성화된 레포지토리 정보 표시 |
apt policy [package] | apt-cache policy [package] | 설치된 패키지 및 사용 가능한 패키지 버전 표시 |