포트 X가 포트 Y에 종속되는 이유를 알아낼 수 있나요?

포트 X가 포트 Y에 종속되는 이유를 알아낼 수 있나요?

FreeBSD에서 특정 포트를 설치하려고 할 때 다른 포트가 종속성으로 나열되는 이유를 쉽게 알아낼 수 있는 방법이 있습니까?

특히 VPS에 Webalizer 포트를 설치하려고 하는데 그 과정에서 Python을 설치하려고 합니다. 나는 직접 사용하지 않을 새로운 프로그래밍 언어를 서버에 설치하고 싶지 않습니다. Webalyzer(무언가에 의존함)+가 Python에 의존하는 것으로 의심되며 이러한 종속성 중 하나의 구성 설정을 변경하여 이를 방지할 수 있기를 바라고 있지만 이를 찾는 방법을 잘 모르겠습니다.

pkg_info에서 유사한 정보를 찾을 수 있다는 것을 알고 있습니다.설치됨포트가 있지만 이 정보를 찾고 싶습니다.앞으로설치하다.

답변1

포트 시스템은 런타임 및 빌드 시간 종속성을 표시하는 make 대상을 제공합니다.포트 매뉴얼 페이지.

make pretty-print-run-depends-list pretty-print-build-depends-list따라서 를 사용하여 종속성 목록을 얻을 수 있어야 합니다 .

run-depends-list, build-depends-list
                  Print a list of all the compile and run dependencies,
                  and dependencies of those dependencies, by port direc-
                  tory.

 all-depends-list
                  Print a list of all dependencies for the port.

 pretty-print-run-depends-list, pretty-print-build-depends-list
                  Print a list of all the compile and run dependencies,
                  and dependencies of those dependencies, by port name and
                  version.

 missing          Print a list of missing dependencies to be installed for
                  the port.

이러한 대상을 사용하여 종속성을 따르는 쉘 스크립트를 만들 수 있습니다(이것은 어리석은 빠른 해킹이므로 아마도 더 나은 방법이 있을 것입니다).

#!/bin/sh

printdeps() {
  local ni
  local dep
  local thisdir

  dir=$1
  port=`basename $dir`
  i=$2
  ni="${i}${port}->"

  thisdir="$dir"
  cd "$dir"
  echo ${i}$dir
  for dep in `make build-depends-list` ; do
    printdeps $dep "$ni"
  done
  cd "$thisdir"
}

printdeps $PWD

Webalizer의 경우 최소한 Python의 빌드 종속성 경로를 찾을 수 있습니다.webalizer->gd->tiff->freeglut->libGLU->libGL->/usr/ports/lang/python

관련 정보