
에 의존하는 포트를 구축하려고 합니다 apache-ant
.
make build-depends-list
이 포트에 필요한 모든 종속성을 보려면 다음을 실행할 수 있다고 생각했습니다 .
# make build-depends-list
/usr/ports/devel/apache-ant
/usr/ports/java/jdk16
/usr/ports/math/gmp
그러나 모든 것을 설치한 후 포트에는 1마일 길이의 종속성 목록이 생겼습니다.
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