데비안과 페도라는 종속성 문제를 해결하려고합니다

Linux 배포판은 종속성 증가 문제에 직면 해 있습니다. 프로젝트의 Python, Perl 및 Ruby 코드에 대한 종속성 수는 유지됩니다. 합리적인 한도 내에서 JavaScript 프로젝트는 매우 작은 라이브러리로 분할되어 종종 단일 기능을 수행합니다.

NPM 저장소에는 이미 백만 개가 넘는 패키지가 있습니다. 및 일반적인 응용 프로그램 수백 개의 종속성에 연결, 차례로 자체 종속성을 가지므로 Linux 배포판에서 JavaScript 애플리케이션으로 기존 패키지를 유지 관리하고 배포하기가 어렵습니다.

JavaScript 라이브러리 종속성이 밀접하게 얽혀 있기 때문에 배포에서 JavaScript 라이브러리로 모든 패키지를 업데이트합니다. 다른 패키지를 손상시킬 수 있습니다.

버전 바인딩은 문제를 악화시킵니다. 하나의 라이브러리는 안정적으로 작동하기 위해 한 버전의 종속성을 요구할 수 있고 다른 라이브러리는 다른 버전을 요구할 수 있습니다.

많은 프로젝트가 작동하려면 최신 버전의 라이브러리가 필요합니다. 배포판의 안정성 요구 사항을 항상 충족하지는 않습니다(최신 버전의 프레임워크를 사용하여 Node.js 생태계에서 지속적인 개발이 실행되며 배포판은 몇 년 동안 지원되어야 함).

배포판에서만 패키지 버전 수정 시도 오래된 버전의 증가로 이어집니다 몇 년 동안 업데이트되지 않은 저장소에서. 하나의 패키지에 대한 유지보수 중단은 다른 많은 패키지에 부정적인 영향을 미치고 더 많은 문제를 야기합니다.

또한, l상호 의존성 많은 도서관이 Node.js를 시스템에서 제거 할 수 없게 됨그러면 다른 Node.js 프로그램을 제거 할 수 없습니다.

이러한 상황을 해결하기 위해 Fedora 프로젝트는 최근 Node.js 기반 프로젝트에서 사용되는 라이브러리와 별도의 패키지 기본 구성을 중지하는 계획을 승인했습니다.

Fedora 34부터 인터프리터, 헤더, 기본 라이브러리, 바이너리 및 기본 패키지 관리(NPM, Yarn) 도구가 포함된 Node.js용 기본 패키지만 제공하기로 결정했습니다.

Node.js를 사용하는 Fedora 저장소 응용 프로그램에서 별도의 패키지에서 사용되는 라이브러리를 분할 및 분리하지 않고 패키지에 기존의 모든 종속성을 포함할 수 있습니다.

라이브러리를 임베딩하면 작은 패키지 혼란을 제거하고 패키지 유지 관리를 단순화합니다 (이전에는 유지 관리자가 프로그램이있는 기본 패키지보다 라이브러리가있는 수백 개의 패키지를 검토하고 테스트하는 데 더 많은 시간을 보냈습니다). 충돌로부터 인프라를 절약 할 수 있습니다. 라이브러리 버전에 연결하여 문제를 해결합니다 (관리자는 테스트 및 프로덕션 테스트 버전을 패키지에 포함).

통합의 단점은 수정을 가져 오는 과정의 복잡성입니다. 취약한 라이브러리를 포함하는 모든 패키지의 유지 관리자가 공동 작업을 수행해야 하는 라이브러리의 취약성입니다. 패키지가 취약한 기본 제공 라이브러리를 업데이트하는 것을 잊고 패키지가 눈에 띄지 않게 될 위험이 있습니다.

개발자 데비안도 비슷한 패키지 종속성 통합 모델로의 이동에 대해 논의하고 있습니다. Node.js 외에도 작은 종속성으로 분리되는 경향이 있는 PHP 및 Go 언어로 쿠버네티스 플랫폼 및 프로젝트용 패키지 빌드에 대해 논의합니다. 아직 어떤 결정도 내리지 않았지만 시간이 지남에 따라 문제가 더욱 악화되고 조만간 프로젝트가 강제로 조치를 취해야 할 것입니다.

gvm(Greenbone Vulnerability Management) 보안 스캐너에 대한 gsa(Greenbone Security Assistant) 웹 인터페이스는 패키지 관리자가 가지고 있는 문제의 예로 인용됩니다.

gsa의 데비안 탑재 버전은 최신 버전의 gvm과 호환되지 않는 것으로 판명되었지만 중요한 변경 사항이 포함되어 있고 npm을 사용하여 필요한 Node.js 라이브러리를 다운로드하기 때문에 gsa를 현재 버전으로 업데이트할 수 없었습니다.

요청된 라이브러리가 너무 많고 데비안 규칙이 빌드 프로세스 중에 외부 구성 요소를 로드하는 것을 금지하기 때문에 누군가 유지 관리하려면 데비안에서 새 패키지를 빌드해야 합니다.

출처 : https://lwn.net/


코멘트를 남겨주세요

코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   큐티크

    ECMAscript의 프레임 워크 및 라이브러리 조각화는 손에서 벗어났습니다.
    좋은 기사.