Portupgrade y make en FreeBSD

Mucha gente cree incorrecto el uso de Portupgrade como herramienta gestora de ports en FreeBSD. Se compone de varios comandos que facilitan la tarea al administrador del sistema:
  • portinstall: Para la instalación de ports
  • portcvsweb: Navegador por el histórico de cambios CVS
  • portversion: Reemplazo de pkg_version con mejoras
  • portsclean: Borra el directorio de trabajo (workdir) y viejas librerías huérfanas...
  • portsdb: Crea una base de datos indexada del árbol de ports
  • pkg_deinstall: Análogo a pkg_delete
  • pkg_fetch: Descarga el código fuente de un port.
Es sencillo mantener el software de tu servidor actualizado permanentemente con estas herramientas, sin embargo el caso que se me presentó hoy era distinto: Necesitaba instalar un port con opciones de compilación (webalizer con soporte para castellano) así que consultando directamente el manual (man portinstall) deduzco que es sencillo:
    -m
     --make-args            Specify arguments to append to each make(1) com-
                            mand line.
Para saber la variable de entorno que tenemos que configurar para que el idioma cambie a castellano miramos en el Makefile:
.if defined(BATCH)
# no cosmetique spaces allowed
WEBALIZER_LANG?=english
.endif
...
SUPP_LANG=      catalan chinese croatian czech danish dutch english \
                estonian finnish french galician german greek hungarian \
                icelandic indonesian italian japanese korean latvian \
                malay norwegian polish portuguese portuguese_brazil \
                romanian romanian-iso-8859-2 russian serbian \
                simplified_chinese slovak slovene spanish swedish \
                turkish ukrainian
Ahora solo queda instalarlo con el correspondiente argumento, con portinstall o a la antigua usanza:
# portinstall -m WEBALIZER_LANG=spanish /usr/ports/www/webalizer
# cd /usr/ports/www/webalizer/ ; make WEBALIZER_LANG=spanish ; make install
Nota mental, con varios argumentos sería muy parecido:
# portinstall -m "WITH_ESTO=yes WITH_LOOTRO=yes" /usr/ports/loque/sea
# cd /usr/ports/loque/sea/ ; make "WITH_ESTO=yes WITH_LOOTRO=yes" ; make install
Gracias Victor por el recordatorio, a ver si con este tipo de anotaciones refresco la memoria, parece que se haya quedado en el levante :/.
sysadmin freebsd

About the author

Óscar
has doubledaddy super powers, father of Hugo and Nico, husband of Marta, *nix user, Djangonaut and open source passionate.