빌드 종속성과 사용 종속성을 구별하는 방법은 무엇입니까?

빌드 종속성과 사용 종속성을 구별하는 방법은 무엇입니까?

패키지의 일부 종속성은 컴파일 타임에만 필요하지만 다른 종속성은 실제 사용에 필요합니다. 예를 들어, 나는 컴파일만 하면 되고 종속성도 (또한) 사용된다는 net-misc/unison것을 알게 되었습니다 . 하지만 실제로 차이점을 어떻게 알 수 있습니까?dev-lang/ocamlsys-libs/glibc

답변1

루트 다이어그램뭔가 특별한... ;-)

이는 소스에 따라 다릅니다. 프로그램 소스 코드의 일부를 처리/생성하기 위해 특별한 도구(awk, sed, flex...)가 필요한 경우 이를 컴파일/빌드하려면 해당 도구가 필요합니다... 그러나 일단 프로그램이 빌드되면 - 지금 바로. 일부 실행 파일이 있습니다. 이 도구는 이 프로그램을 사용하는 데 필요하지 않습니다.

일부가 특이한 언어로 작성된 프로그램의 경우에도 마찬가지입니다. 프로그램의 일부가 Ocaml, Ada 또는 Pascal로 작성된 경우 해당 언어에 적합한 컴파일러를 설치해야 합니다. 공유 라이브러리는 객체 파일로 컴파일되고 완성된 실행 파일에 링크된 후에만 필요합니다. 정적 라이브러리를 사용하여 빌드하지 않는 한 라이브러리는 필요하지 않습니다.

문서의 일부 부분에도 추가 도구와 프로그램을 설치해야 하는 경우가 있습니다. 예를 들어 LaTeX로 작성되었으므로 LaTeX를 사용하여 작성해야 하는 콘텐츠가 있습니다. 결국 간단한 매뉴얼 페이지라도 사용된 마크업 언어를 설명하려면 TROFF가 필요합니다.

Gentoo 이외의 배포판(모든 것을 직접 빌드할 필요가 없는 배포판)의 경우 패키지가 미리 빌드되어 있으므로 빌드 프로세스 중에 필요한 도구에 대해 걱정할 필요가 없습니다.

관련 정보