Linux 배포판을 구별하는 중요한 요소는 패키지 관리 시스템입니다. 이 기사에서는 Linux의 패키징 및 패키지 관리자에 대해 배웁니다. "패키지"와 "패키지 관리자"의 개념과 작동 방식은 물론 몇 가지 일반적인 패키지 관리자를 소개합니다.
패키지 관리자란 무엇인가요?
간단히 말하면 "패키지 관리자"(또는 "패키지 관리자")는 사용자가 운영 체제에서 소프트웨어 패키지를 설치, 제거, 업그레이드, 구성 및 관리할 수 있는 도구입니다. 패키지 관리자는 소프트웨어 센터와 같은 그래픽 애플리케이션이거나 apt-get 또는 pacman과 같은 명령줄 도구일 수 있습니다.
제가 튜토리얼과 기사에서 "패키지"라는 단어를 많이 사용한다는 것을 아실 겁니다. 패키지 관리자를 이해하려면 패키지가 무엇인지 이해해야 합니다.
가방이란 무엇인가요?
"패키지"(또는 "소프트웨어 패키지")는 일반적으로 GUI 애플리케이션, 명령줄 도구 또는 소프트웨어 라이브러리(다른 소프트웨어 프로그램에 필요함)일 수 있는 애플리케이션을 의미합니다. 패키지는 본질적으로 바이너리 실행 파일, 구성 파일, 때로는 종속성 정보를 포함하는 아카이브 파일입니다.
예전에는 소프트웨어가 소스 코드에서 설치되었습니다. 파일(일반적으로 README라는 이름)을 참조하여 필요한 소프트웨어 구성 요소와 바이너리의 위치를 확인합니다. 일반적으로 구성 스크립트 또는 Makefile이 포함됩니다. 소프트웨어를 직접 컴파일하거나 모든 종속성을 직접 처리해야 합니다(일부 소프트웨어에는 다른 소프트웨어를 설치해야 함).
이러한 복잡성을 없애기 위해 Linux 배포판은 일부 메타데이터(버전 번호, 설명) 및 종속성 관계와 함께 소프트웨어 설치를 위해 바로 사용할 수 있는 바이너리(사전 컴파일된 소프트웨어)를 최종 사용자에게 제공하는 자체 패키징 형식을 만들었습니다.
케이크를 굽는 것과 케이크를 사는 것과 같습니다.
1990년대 중반쯤 데비안은 DEB 패키징 형식(.deb)을 만들었고, Red Hat Linux는 RPM(Red Hat Package Manager의 약어) 패키징 시스템(.rpm)을 만들었습니다. 소스 코드를 컴파일하는 방법은 여전히 존재하지만 이제는 선택 사항입니다.
패키징 시스템과 상호 작용하거나 사용하려면 패키지 관리자가 필요합니다.
패키지 관리자는 어떻게 작동하나요?
패키지 관리자는 일반적인 개념이며 Linux에만 국한된 개념이 아니라는 점을 기억하세요. 다양한 소프트웨어나 프로그래밍 언어에 대한 패키지 관리자를 자주 찾을 수 있습니다. Python 패키지 전용 PIP 패키지 관리자가 있습니다. Atom 편집기에도 자체 패키지 관리자가 있습니다.
이 글의 초점은 Linux이므로 Linux 관점에서 시작하겠습니다. 그러나 여기에 설명된 대부분의 설명은 일반적인 패키지 관리자에도 적용될 수 있습니다.
패키지 관리자의 작동 방식을 쉽게 이해할 수 있도록 SUSE Wiki를 기반으로 이 다이어그램을 만들었습니다.
거의 모든 Linux 배포판에는 기본적으로 소프트웨어 패키지 모음인 "소프트웨어 저장소"가 있습니다. 예, 소프트웨어 저장소가 두 개 이상 있을 수 있습니다. 소프트웨어 라이브러리에는 다양한 종류의 소프트웨어 패키지가 포함되어 있습니다.
소프트웨어 저장소에는 패키지 이름, 버전 번호, 패키지 설명, 소프트웨어 저장소 이름과 같은 소프트웨어 패키지 정보가 포함된 메타데이터 파일도 있습니다. 이것은 Ubuntu/Debian에서 apt show 명령을 사용하여 볼 수 있는 것입니다.
시스템의 패키지 관리자는 먼저 메타데이터와 상호 작용합니다. 패키지 관리자는 시스템에 메타데이터의 로컬 캐시를 생성합니다. 패키지 관리자의 업데이트 옵션(예: apt update)을 실행하면 저장소의 메타데이터를 참조하여 로컬 메타데이터 캐시가 업데이트됩니다.
패키지 관리자의 설치 명령(예: apt install package_name)을 실행하면 패키지 관리자가 이 캐시를 참조합니다. 캐시에서 패키지 정보를 찾으면 인터넷을 사용하여 적절한 저장소에 연결하고 패키지를 시스템에 설치하기 전에 다운로드합니다.
패키지는 종속성을 가질 수 있습니다. 즉, 추가 패키지를 설치해야 할 수도 있습니다. 패키지 관리자는 일반적으로 이러한 종속성을 처리하고 설치 중인 패키지와 함께 자동으로 설치합니다.
*Linux 패키지 관리자가 종속성을 처리합니다*
마찬가지로, 패키지 관리자를 사용하여 패키지를 삭제하면 자동으로 삭제되거나 시스템에 정리할 수 있는 사용되지 않은 패키지가 있음을 알려줍니다.
설치 및 제거라는 명백한 작업 외에도 패키지 관리자를 사용하여 필요에 따라 패키지를 구성하고 관리할 수도 있습니다. 예를 들어 정기적인 시스템 업데이트 중에 특정 패키지 버전이 업그레이드되지 않도록 할 수 있습니다. 패키지 관리자가 할 수 있는 일이 훨씬 더 많을 것입니다.
다양한 종류의 패키지 관리자
패키지 관리자는 패키징 시스템에 따라 다르지만, 동일한 패키징 시스템에 여러 패키지 관리자가 있을 수 있습니다.
예를 들어 RPM에는 Yum 및 DNF 패키지 관리자가 있습니다. DEB의 경우 apt-get, aptitude 등과 같은 명령줄 기반 패키지 관리자가 있습니다.
시냅틱 패키지 관리자
패키지 관리자는 반드시 명령줄 기반일 필요는 없으며 Synaptic과 같은 그래픽 패키지 관리 도구도 있습니다. 배포판의 소프트웨어 센터는 내부적으로 apt-get 또는 DNF를 실행하는 경우에도 패키지 관리자이기도 합니다.
결론
이 주제에 대해 더 자세히 설명하고 싶지는 않습니다. 계속할 수는 있지만 그렇게 하면 Linux의 패키지 관리자에 대한 기본적인 이해를 제공하는 이 주제의 목표를 손상시킬 수 있습니다.
저는 현재 Snap 및 Flatpak과 같은 새로운 범용 패키징 형식을 무시하고 있습니다.
위 내용은 Linux 패키지 관리자에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!