En sistemas FreeBSD, los ports son un conjunto de Makefiles, parches, y archivos de descripción almacenados bajo /usr/ports/
, los cuales son utilizados para compilar e instalar aplicaciones en FreeBSD. En este artículo explico cómo obtener información acerca de las dependencias de un port en FreeBSD.
Supongamos que deseamos compilar el editor de texto nano
desde el port (en lugar de simplemente instalar el paquete binario, al mejor estilo Debian, ejecutando pkg install nano
):
root@hal9000:~ # whereis nano nano: /usr/local/bin/nano /usr/local/man/man1/nano.1.gz /usr/ports/editors/nano
Luego de identificar el port (editors/nano
), probablemente el siguiente paso consista en instalarlo utilizando el gestor portmaster
(o cambiando al directorio del port y ejecutando make install clean
). Aunque, si deseamos conocer las dependencias del port (qué otros ports son necesarios para compilarlo y ejecutarlo) debemos realizar lo siguiente.
Cambiar al directorio del port:
root@hal9000:~ # cd /usr/ports/editors/nano
Luego simplemente ejecutar make all-depends-list
:
root@hal9000:/usr/ports/editors/nano # make all-depends-list /usr/ports/ports-mgmt/pkg /usr/ports/devel/gettext-tools /usr/ports/devel/gettext-runtime /usr/ports/print/indexinfo /usr/ports/converters/libiconv /usr/ports/textproc/expat2
Este comando muestra todas las dependencias del port de forma recursiva. De las cuales, las siguientes son dependencias para compilar:
root@hal9000:/usr/ports/editors/nano # make build-depends-list /usr/ports/devel/gettext-runtime /usr/ports/devel/gettext-tools /usr/ports/ports-mgmt/pkg
Mientras que las siguientes son dependencias para tiempo de ejecución:
root@hal9000:/usr/ports/editors/nano # make run-depends-list /usr/ports/devel/gettext-runtime /usr/ports/print/indexinfo
Y para el paquete, son las siguientes, con sus respectivas versiones:
root@hal9000:/usr/ports/editors/nano # make package-depends-list gettext-runtime-0.19.4 /usr/ports/devel/gettext-runtime devel/gettext-runtime indexinfo-0.2.3 /usr/ports/print/indexinfo print/indexinfo
De forma alternativa es posible obtener la misma información con un formato más descriptivo:
root@hal9000:/usr/ports/editors/nano # make pretty-print-build-depends-list This port requires package(s) "expat-2.1.0_2 gettext-runtime-0.19.4 gettext-tools-0.19.4 indexinfo-0.2.3 libiconv-1.14_8" to build.
root@hal9000:/usr/ports/editors/nano # make pretty-print-run-depends-list This port requires package(s) "gettext-runtime-0.19.4 indexinfo-0.2.3 libiconv-1.14_8" to run.
Referencias
man 7 ports
Fuente: linuxito