
Estoy intentando crear un puerto que dependa de apache-ant
.
Pensé que podría ejecutar make build-depends-list
para ver todas las dependencias requeridas por este puerto:
# make build-depends-list
/usr/ports/devel/apache-ant
/usr/ports/java/jdk16
/usr/ports/math/gmp
Pero después de instalar todo, el puerto tenía una lista de dependencias de una milla de largo:
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 dependencias es una mala sorpresa y me gustaría saberla antes de comprometerme a instalar un puerto.
¿Cómo puedo ver todas las dependencias y todas las subdependencias de un puerto?
Respuesta1
Estás muy cerca. Pruebe esto en su lugar:
make all-depends-list
Eso se repetirá en todas las dependencias y las imprimirá por usted. Para probar diferentes escenarios de compilación y cómo afectan la lista de dependencias, pruebe cosas como:
make NOPORTDOCS=yes NOPORTEXAMPLES=yes all-depends-list
make WITHOUT_X11=yes all-depends-list
Aquí está el conjunto completo de objetivos de impresión de dependencia:
all-depends-list
build-depends-list
run-depends-list
package-depends-list
pretty-print-build-depends-list
pretty-print-run-depends-list
Saludos, Greg
Respuesta2
Para enumerar los puertos de los que depende:
pkg_info -rx "port-name"
Para enumerar los puertos que requieren:
pkg_info -Rx "port-name"
- Respuesta de este sitio web:http://daemon-notes.com/tips(gracias a ross)
Respuesta3
También tendrías que obtener recursivamente todas las subdependencias. Probablemente haya algunas herramientas para eso en elgestión de puertoscategoría...
yo suelocapitán de puerto(8)para la gestión portuaria. Siempre reúne (sub)dependencias antes de compilar e instalar un puerto:
~> 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
...
Respuesta4
unos años después...
mi solución para instalar paquetes (con fines de copia de seguridad)
Tengo una solución 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
pero puedes cambiar el comando pkg de crear a instalar y cambiar ejecutar a compilar
for i in $( cd /usr/ports/databases/mysql80-server/ && make build-depends-list); do pkg install $( echo $i | rev | cut -d '/' -f1 | rev ); done