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


Tal vez pueda interesarte


Compartí este artículo