
Estou tentando construir uma porta que depende do apache-ant
.
Achei que poderia executar make build-depends-list
para ver todas as dependências exigidas por esta porta:
# make build-depends-list
/usr/ports/devel/apache-ant
/usr/ports/java/jdk16
/usr/ports/math/gmp
Mas depois de instalar tudo, o port tinha uma lista de dependências com um quilômetro de extensão:
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
Esta lista de dependências é uma surpresa desagradável, e eu gostaria de saber sobre ela antes de me comprometer a instalar uma porta.
Como posso ver todas as dependências e todas as subdependências de uma porta?
Responder1
Você está muito perto. Em vez disso, tente isto:
make all-depends-list
Isso irá recorrer a todas as dependências e imprimi-las para você. Para testar diferentes cenários de construção e como eles afetam a lista de dependências, tente coisas como:
make NOPORTDOCS=yes NOPORTEXAMPLES=yes all-depends-list
make WITHOUT_X11=yes all-depends-list
Aqui está o conjunto completo de destinos de impressão de dependência:
all-depends-list
build-depends-list
run-depends-list
package-depends-list
pretty-print-build-depends-list
pretty-print-run-depends-list
Felicidades, Greg
Responder2
Para listar as portas das quais depende:
pkg_info -rx "port-name"
Para listar portas que exigem:
pkg_info -Rx "port-name"
- Resposta deste site:http://daemon-notes.com/tips(graças a Ross)
Responder3
Você também teria que obter recursivamente todas as subdependências. Provavelmente existem algumas ferramentas para isso nogerenciamento de portascategoria...
eu usomestre do porto(8)para gestão portuária. Ele sempre reúne (sub)dependências antes de compilar e instalar um port:
~> 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
...
Responder4
alguns anos depois...
minha solução para instalar pacotes (para fins de backup)
Eu tenho solução para 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
mas você pode alterar o comando pkg de criar para instalar e alterar executar para construir
for i in $( cd /usr/ports/databases/mysql80-server/ && make build-depends-list); do pkg install $( echo $i | rev | cut -d '/' -f1 | rev ); done