有没有一种简单的方法可以弄清楚为什么当我尝试在 FreeBSD 中安装某个端口时,其他某个端口被列为依赖项?
具体来说,我正在尝试在我的 VPS 上安装 Webalizer 端口,并且在此过程中它想要安装 Python。我真的不想在服务器上安装任何我不会直接使用的新编程语言。我怀疑 Webalyzer(取决于某些东西)+ 依赖于 Python,希望我可以通过更改这些依赖项之一的配置设置来阻止它,但我不确定如何找到它。
我知道 pkg_info 可以找到类似的信息已安装端口,但我希望找到这个信息前安装。
答案1
ports 系统提供了一个 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.
您可以使用这些目标来制作 shell 脚本来遵循依赖关系(这是一个愚蠢的快速破解,因此可能有更好的方法)。
#!/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