ports

  • 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.

  • FreeBSD, al igual que muchas distribuciones GNU/Linux, guarda los paquetes que ha compilado desde los fuentes (o descargado desde Internet) a modo de backup en un directorio de nuestro sistema de archivos. Con el tiempo estos paquetes (probablemente obsoletos si se ha actualizado el sistema en reitereadas oportunidades) suman un espacio en disco considerable, por esta razón tal vez sea deseable eliminarlos para recuperar el espacio.

  • Cada vez que se compila un nuevo port en FreeBSD (ya sea ejecutando directamente make en el directorio del port, o a través de portmaster) es probable que sea necesario seleccionar qué opciones de configuración se desean utilizar para el mismo. Estas opciones de configuración se presentan a través del clásico menú con fondo azul:

    Estas opciones quedan guardadas en una base de datos. De esta forma, la siguiente vez que se compile el mismo port, no será necesario volver a indicarlas. Gracias a ello se ahorra mucho tiempo cuando se actualiza un sistema, y es información valiosa respecto a la configuración del sistema. Por ende es muy probable que se desee resguardar al momento de hacer un backup de un servidor FreeBSD.

  • Este breve artículo explica cómo resolver problemas con pkg y portmaster a la hora de resolver dependencias.

  • El día de hoy tuve la necesidad de convertir un archivo de audio a formato MP3 utilizando ffmpeg en FreeBSD:

    emi@hal9000:~ $ ffmpeg -i song.ogg song.mp3
    

    Sin embargo, me encontré con que el codec lame para mp3 no está habilitado por defecto debido a implicancias legales respecto a la redistribución de paquetes pre-compilados con audio/lame:

    Automatic encoder selection failed for output stream #0:0. Default encoder for format mp3 (codec mp3) is probably disabled. Please choose an encoder manually.
    Error selecting an encoder for stream 0:0
    

    Entonces, en lugar de compilar el port (multimedia/ffmpeg) me dispuse a crear mi propia versión personalizada de dicho paquete, a fin de instalar (y luego bloquear) con pkg.

  • En sistemas FreeBSD, el gestor de ports portmaster posee una opción para simular el proceso de compilación e instalación de un port, una especie de apt-get -s en sistemas Devuan y derivados.

  • El árbol de ports de OpenBSD (derivado originalmente de FreeBSD) es un conjunto de Makefiles (uno por cada aplicación) el cual controla desde dónde y cómo obtener el código fuente del software, de cuál otro software depende, cómo modificar los fuentes para que se adapten a OpenBSD (en caso de que sea necesario), cómo configurarlo y compilarlo, cómo verificarlo y finalmente cómo instalarlo.