FreeBSD Ports:如何查看連接埠的所有相依性以及這些依賴項的所有子相依性?

FreeBSD Ports:如何查看連接埠的所有相依性以及這些依賴項的所有子相依性?

我正在嘗試建立一個依賴apache-ant.

我想我可以運行make build-depends-list來查看該連接埠所需的所有依賴項:

# make build-depends-list
/usr/ports/devel/apache-ant
/usr/ports/java/jdk16
/usr/ports/math/gmp

但安裝完所有內容後,該連接埠有一個一英里長的依賴項清單:

apache-ant-1.8.1 desktop-file-utils-0.15_2 gamin-0.1.10_4 gettext-0.18.1.1 gio-fam-backend-2.26.1 glib-2.26.1_1 gmp-5.0.1 inputproto-2.0 javavmwrapper-2.3.5 kbproto-1.0.4 libX11-1.3.3_1,1 libXau-1.0.5 libXdmcp-1.0.3 libXext-1.1.1,1 libXi-1.3,1 libXtst-1.1.0 libiconv-1.13.1_1 libpthread-stubs-0.3_3 libxcb-1.7 pcre-8.12 perl-5.10.1_3 pkg-config-0.25_1 python26-2.6.6 recordproto-1.14 unzip-6.0 xextproto-7.1.1 xproto

這個依賴項清單是一個粗魯的驚喜,我想在承諾安裝連接埠之前了解它。

如何查看連接埠的所有依賴項和所有子相依性?

答案1

你們非常接近。試試這個:

make all-depends-list

這將遞歸所有依賴項並為您列印它們。若要測試不同的建置場景以及它們如何影響依賴項列表,請嘗試以下操作:

make NOPORTDOCS=yes NOPORTEXAMPLES=yes all-depends-list

make WITHOUT_X11=yes all-depends-list

這是完整的依賴列印目標集:

all-depends-list
build-depends-list
run-depends-list
package-depends-list
pretty-print-build-depends-list
pretty-print-run-depends-list

乾杯,格雷格

答案2

列出依賴的連接埠:

pkg_info -rx "port-name"

列出需要的連接埠:

pkg_info -Rx "port-name"

——來自該網站的回答:http://daemon-notes.com/tips(感謝羅斯)

答案3

您還必須遞歸地獲取所有子依賴項。可能有一些工具可以實現這一點連接埠管理類別...

我用港口管理員(8)用於港口管理。它總是在編譯和安裝連接埠之前收集(子)依賴項:

~> portmaster --show-work devel/apache-ant
===>>> Port directory: /usr/ports/devel/apache-ant
===>>> Starting check for all dependencies
===>>> Gathering dependency list for devel/apache-ant from ports

===>>> Installed converters/libiconv
===>>> Installed devel/gettext
===>>> NOT INSTALLED            devel/gmake
===>>> Installed devel/libcheck
...

答案4

幾年後...

我的安裝包的解決方案(用於備份目的)

我有 FreeBSD 12+ (bash) 的解決方案

for i in $( cd /usr/ports/databases/mysql80-server/ && make run-depends-list); do pkg create -o /root/packages $( echo $i | rev | cut -d '/' -f1 | rev ); done

但你可以將 pkg 命令從創建更改為安裝,並將運行更改為構建

for i in $( cd /usr/ports/databases/mysql80-server/ && make build-depends-list); do pkg install $( echo $i | rev | cut -d '/' -f1 | rev ); done

相關內容