Linux Foundation Training

[LFS201] Package Management (1) : Introduction

Sara.H 2020. 9. 14. 09:08

패키지 관리 시스템이란 ? 

* 사용자가 패키지들을 일관된 방식으로 설치, 삭제, 업그레이드 할 수 있도록 도와주는 시스템. 

* 패키지들간의 의존성을 관리하는 역할도 한다. 

 

패키지를 이루고 있는 것들 : 실행 바이너리, 데이터 파일, 인스트럭션 파일, 설정 파일, 설치 스크립트, 그리고 버전 등과 같은 메타데이터를 담고 있는 파일들로 이루어져 있다. 패키지가 설치되면 이 모든 파일들이 내부 DB에 저장이 되고, 손쉽게 DB에 퀴리를 날려서 패키지와 관련된 정보들을 조회할 수 있다. 

 

패키지 관리 시스템을 통해서 아무리 큰 패키지라 하더라도 손쉽게 설치를 할 수 있고, 모든 과정들을 자동화 할 수 있다. 뿐만 아니라 보안적으로도 훨씬 더 안전하게 패키지를 관리할 수 있다. 

 

패키지의 두 종류 : Binary Packages & Source Packages 

1. 바이너리 패키지 : 바이너리 패키지들은 배포 준비된 상태의 파일들을 포함한다. executable file, libraries 들이 들어있다. 이것들은 머신 아키텍처에 의존적이고 각 머신의 종류마다 다르게 컴파일 되어야 한다.

2. 소스 패키지 : 소스 패키지들은 바이너리 패키지들을 generate 할 때 사용된다. 바이너리 패키지들은 소스 패키지들로부터 항상 재빌드가 가능해야 한다. 예를 들어서 rpmbuild --rebuild 를 RPM 기반의 시스템에서 사용하는 경우가 이에 해당한다. 하나의 소스 패키지는 여러 종류의 머신 아키텍처에서 사용 가능하다. 

 

시스템 관리자들은 바이너리 패키지들을 주로 다룬다. 

 

64bit 시스템에서는 32bit 프로그램을 실행할 수 없다. 따라서 하나의 프로그램이더라도, 두 개의 바이너리 패키지들을 설치하는 경우가 있을 수 있다. 가령 하나의 바이너리는 x86_64 혹은 amd64 가 이름에 들어가 있고, 다른 하나는 i386 혹은 i686 이 이름에 들어가 있는 경우를 떠올릴 수 있다. 

 

소스 패키지로부터 바이너리 패키지를 리빌드 하는 것이 항상 가능해야한다. 

예를 들어, RPM 기반의 시스템에서는 다음과 같은 명령으로 p7zip 바이너리를 리빌드 할 수 있다. 

 


RPM 패키지 매니저 : Red Hat Package Manager 를 의미한다. 원래는 레드햇에서 사용되었지만 현재는 많은 RPM 기반 배포판이 사용된다. RPM 이외에 많이 들어봤을 법 한 리눅스 패키지 관리 시스템으로는 Dpkg 가 있다. 

 

Yum : Yellow Dog Updater, Modified 의 약자. RPM 기반의 시스템을 위한 자동 업데이터 겸 패키지 설치 및 제거 도구이다. 듀크 대학교의 Linux@DUKE 프로젝트의 일부분으로 개발되었다. 

 

APT : Advanced Pacakging Tool. 데비안 GNU/리눅스 배포판 계열의 소프트웨어 설치 및 제거 도구이다. APT 는 이진 파일로부터나 소스코드 컴파일을 통하여 소프트웨어 패키지의 확인, 구성, 설치를 자동화 함으로써 유닉스계열 컴퓨터 시스템 상의 소프트웨어를 관리하는 작업을 단순하게 만든다. APT는 본래 데비안의 .deb 패키지와 함께 동작할 목적으로 dpkg 를 위한 프론트엔드 인터페이스로 고안되었으나, 그 위 apt-rpm 을 통한 RPM 패키지 매니저 시스템과도 함께 동작하도록 수정되었다. (그 유명한 sudo apt install ... )

'Linux Foundation Training' 카테고리의 다른 글

[LFS 201] Package Managements (2)  (0) 2020.10.06
[LFS201] Processes  (0) 2020.06.29
[LFS201] Linux Filesystem Tree Layout  (0) 2020.06.25