0
Homebrew (및 다른 패키지 관리자)는 종속성을 어떻게 해결합니까? 순환 종속성과 같은 특별한 경우는 어떻습니까? 이 작업을위한 일반화 된 패턴, 알고리즘 및/또는 데이터 구조가 있습니까?Homebrew는 어떻게 의존성을 해결합니까?
Homebrew (및 다른 패키지 관리자)는 종속성을 어떻게 해결합니까? 순환 종속성과 같은 특별한 경우는 어떻습니까? 이 작업을위한 일반화 된 패턴, 알고리즘 및/또는 데이터 구조가 있습니까?Homebrew는 어떻게 의존성을 해결합니까?
지향 비순환 그래프에서 종속성 문제를 해결하는 일반적인 알고리즘을 topological sorting이라고합니다. 나는 이것이 패키지 관리자가 사용하는 것임을 확신합니다. 그러나 순환 종속성에서는 작동하지 않습니다.
원형 (런타임) 종속성의 경우 (적어도 RPM에서) 패키지 중 하나에서 검사를 건너 뛰거나 상호 의존 패키지를 동일한 명령 줄에서 지정하여 "동시에"설치할 수 있습니다. 그러면 패키지 관리자는 다른 패키지도 설치되고 종속성이 충족됨을 알게됩니다.
빌드 시간 순환 종속성을위한 솔루션이 있다고는 생각하지 않습니다.
감사합니다. 나는 실제로 이것을 필요로하는 .NET 프로젝트에서 작업하고있다. 저는 정점 배열을 얻기 위해 토폴로지 정렬을 사용하는 음영 그래프를 가지고 있습니다. Quickgraph 라이브러리는 편리하게 제공됩니다 (이를 읽는 사람이 같은 요구 사항을 가진 경우). –