리눅스 환경에서 소프트웨어 패키지는 거의 독립적으로 존재하지 않습니다. 올바르게 작동하려면 종종 종속성 (dependencies) 이라고 불리는 다른 구성 요소에 의존합니다. 이 개념은 리눅스 패키지 관리의 기본입니다.
종속성의 개념
종속성을 이해하기 위해 여러 레스토랑 그룹을 생각해 보세요. 각 레스토랑은 고유한 요리를 만들지만, 모두 동일한 중앙 농장에서 재료를 공급받습니다. 음식의 품질은 농장의 공급에 달려 있습니다. 만약 농장이 갑자기 재료 공급을 중단하면 레스토랑은 운영할 수 없습니다. 마찬가지로, 리눅스 패키지도 실행을 위해 다른 구성 요소에 의존합니다.
공유 라이브러리란 무엇인가
리눅스에서 이러한 중요한 종속성은 일반적으로 다른 패키지이거나, 더 흔하게는 공유 라이브러리입니다. 공유 라이브러리는 여러 프로그램이 동시에 사용할 수 있는 사전 컴파일된 코드 모음입니다. 이는 효율적인 소프트웨어 설치의 핵심 원칙입니다.
다시 비유로 돌아가서, 모든 레스토랑이 직접 음식을 재배해야 한다고 상상해 보세요. 공통 자원인 농장을 공유함으로써 엄청난 노력을 절약합니다. 공유 라이브러리도 이와 동일하게 작동하여 개발자가 모든 새 애플리케이션에 대해 공통 함수를 다시 작성할 필요가 없도록 합니다. 여기서는 공유 라이브러리에 대해 더 자세히 다루겠지만, 지금은 이것이 일반적인 종속성 유형이라는 것을 아는 것이 중요합니다.
손상된 패키지의 위험
효과적인 패키지 관리는 이러한 종속성이 충족되도록 보장하는 것입니다. 소프트웨어 설치 중에 필수 패키지나 공유 라이브러리가 누락되면 프로세스가 실패할 가능성이 높습니다. 필요한 구성 요소가 부족하여 해당 패키지는 "손상된" 것으로 간주됩니다. 시스템의 패키지 관리자는 이러한 리눅스 패키지 종속성을 자동으로 처리하도록 설계되어, 문제가 발생하기 전에 필요한 구성 요소를 가져와 설치합니다.