2012-02-09 4 views
2

저는 30 개 이상의 오픈 소스 패키지가있는 소프트웨어 시스템을 가지고 있습니다. 이들 중 대부분은 GNU Autotools suite를 사용합니다.Autotools 패키지의 의존성 그래프 생성하기

패키지 간 패키지 종속성 그래프를 자동으로 생성하는 도구가 있습니까? 나는. gst-plugins-good -> gst-plugins-base -> gstreamer -> glib와 같은 것을보고 싶습니다.

답변

0

나는 그렇게 생각하지 않는다, 그러나 당신은 아마이 지식과 ​​함께 뭔가를 채찍질 수 :

  • 패키지의 루트 디렉토리에 configure.ac 또는 configure.in 중 하나라는 이름의 파일을 검사합니다. 형태 PKG_CHECK_MODULES([...],[...]...)
  • 해당 매크로 번째 인수의 문자열
  • 룩은 공백으로 분리 된 형태 또는 packagepackage >= version의 패키지 요구 이루어져있다.
  • requirement 문자열은 패키지 타르볼 이름과 같지 않을 수 있습니다. package.pc 또는 package.pc.in을 포함하는 타볼은 package 패키지를 제공합니다.
  • 이것은 pkg-config를 사용하는 종속성에서만 작동합니다. 어떤 사람들은 그렇지 못하기 때문에 그러한 의존성을 손으로 추적해야합니다.
+0

수동 검색이 아닌 autoconf --trace = AC_CHECK_LIB : '$ 1 : $ 4'--trace = PKG_CHECK_MODULES : '$ 1 : $ 2'--trace = AC_SEARCH_LIBS : '$ 2 : $ 4 ' –

0

아마도 이것이 어려운 문제이기 때문일 수 있습니다. 패키지를 빌드하는 방법이 한 가지만있는 경우 너무 나쁘지는 않을 수 있지만 일반적으로 그렇지 않습니다. configure에 전달할 수있는 --enable-foo--with-foo 옵션이 있습니다. 그것들은 때때로 패키지에 의존적이기도하여 더 많은 패키지가 필요합니다. 대부분의 리눅스 배포판 (0120)은 yum 또는 zypper 또는 apt에 대한 종속성 목록을 유지하거나 패키지 관리자가 손으로 무엇이든간에 패키지 관리자가 그래프를 통과 할 수 있도록 한 계층 만 깊이있게 유지합니다. . 배포판에 대한 패키지는 하나만 방법을 내장하고 있습니다. 이러한 목록이 손상되는 것은 드문 일도 아닙니다.