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