FreeBSD

  • La shell Bash maneja diferentes descriptores de archivo (file descriptors) para implementar las redirecciones. El descriptor número 0 corresponde con la entrada estándar (stdin), el 1 corresponde con la salida estándar (stdout), y el 2 con la salida estándar de errores (stderr). A diferencia de Bash, csh (intérprete de comandos por defecto en sistemas FreeBSD) no posee un descriptor de archivo (2) para la standard error (stderr). Aunque de todas formas es posible redirigir las salidas estándar y de errores a archivos separados.

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

  • En este artículo voy a demostrar cómo restaurar la copia de respaldo más fresca de un cliente, previa a una fecha específica, desde la consola de Bacula.

  • Hoy traje esta maravilla, Pearl Jam - No Code (1996), a la oficina y decidí ripear el CD para escucharlo mas cómodamente en .mp3 y descargarlo al teléfono:

    Veamos cómo ripear (bajar a archivos .wav los temas de) un CD de audio y convertirlo a formato .mp3 en un sistema FreeBSD.

  • En sistemas FreeBSD, el servicio NFS está conformado por cuatro demonios: el servidor NFS (nfsd), el cual sirve peticiones de clientes NFS; el demonio mountd, el cual lleva a cabo peticiones recibidas desde nfsd; el demonio nfsuserd, el cual gestiona la información de usuarios y grupos; y rpcbind, quien permite que los clientes NFS descubran qué puerto está utilizando el servidor NFS.

  • En el tiempo libre que me queda entre proyectos, aprovecho para seguir realizando algunas mejoras a mi FreeBSD 10.1. En este caso, tenía pendiente configurar adecuadamente la codificación de caracteres en UTF-8, para visualizar adecuadamente los acentos (tildes en realidad) y las letras eñe (ñ, Ñ).

  • Hoy abro mi casilla de Hotmail en FreeBSD y me encuentro con ésto:

    La horrible, espantosa, repulsiva, deforme y obtusa interfaz de OWA. Microsoft lo hizo de nuevo.

  • Poder ver el comando completo con el que se lanzó un proceso, el eterno drama al ejecutar ps aux.

    root@debian:~# ps 2778
      PID TTY      STAT   TIME COMMAND
     2778 ?        Sl    78:51 /opt/BostaSoft/app/jre/bin/java -Dprogram.name=run.s
    

    Existen varias formas de lograr el cometido y en este artículo explico algunas de las que conozco.

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

  • Este artículo explica paso a paso cómo compilar e instalar VirtualBox en FreeBSD. Compilar VirtualBox es simple, solo que antes es necesario instalar el código fuente del kernel para poder compilar el módulo vboxdrv, necesario para que funcionen las máquinas virtuales.

  • Anteriormente expliqué cómo conectarse a una base de datos Postgres desde Python utilizando el driver pg8000. Esta vez voy a demostrar cómo instalar y utilizar el driver psycopg2, cuyo funcionamiento es muy similar al del driver pg8000.

  • En el artículo Introducción a ZFS en FreeBSD enumeré las grandes ventajas de ZFS y expliqué paso a paso como definir pooles y crear datasets. En esta oportunidad voy a demostrar cómo configurar el servicio NFS (Network File System) para definir un espacio de almacenamiento en la nube (o sistema de archivos en red), y así poder aprovechar todas las ventajas que posee ZFS en FreeBSD desde clientes GNU/Linux.

  • KDM (KDE Display Manager) es el gestor de inicio de sesión (login) de KDE, el cual utilizo en mis sistemas de escritorio FreeBSD y Slackware con KDE 4. Algo que me sucedió en ambos sistemas, es que la distribución de teclado durante el login no era correcta (tengo teclados en español o latinoamericano) a pesar de estar correctamente configurados en KDE. Esto me generaba constantes problemas al utilizar contraseñas con caracteres especiales.

  • La consola (intérprete de línea de comandos) CSH, instalada por defecto de los sistemas FreeBSD, tiene una funcionalidad muy interesante y útil que consiste en buscar en el historial cuando se utiliza la flecha hacia arriba.

  • El demonio ntpd se encarga de setear y mantener el reloj del sistema con la hora actualizada, en sincronía con servidores de tiempo a través de Internet. En sistemas operativos GNU/Linux y FreeBSD, ntpd implementa el protocolo NTP (Network Time Protocol) versión 4 definido en la RFC-5905.

  • En los sistemas FreeBSD, la herramienta ifconfig se utiliza para asignar una dirección a una interfaz de red y/o configurar sus parámetros. Esta herramienta se utiliza durante el inicio del sistema para definir las direcciones IP de cada interfaz de red presente. Pero también puede ser utilizada luego para redefinir o modificar la dirección IP de una interfaz de red u otro parámetro. Este artículo explica cómo hacerlo.

  • Esta semana pasé un mal momento con mi instalación de FreeBSD, provocado por un journal corrupto que causaba kernel panics:

    root@hal9000:/usr/home/emi # last | grep "Jul 12" | grep crash
    emi        ttyv0                           Thu Jul 12 11:18 - crash  (00:06)
    emi        pts/1    :0                     Thu Jul 12 10:55 - crash  (00:12)
    emi        pts/0    :0                     Thu Jul 12 10:55 - crash  (00:12)
    emi        :0                              Thu Jul 12 10:55 - crash  (00:12)
    emi        pts/1    :0                     Thu Jul 12 10:47 - crash  (00:07)
    emi        pts/0    :0                     Thu Jul 12 10:47 - crash  (00:07)
    emi        :0                              Thu Jul 12 10:47 - crash  (00:07)
    emi        ttyv0                           Thu Jul 12 10:28 - crash  (00:12)
    emi        pts/1    :0                     Thu Jul 12 10:05 - crash  (00:08)
    emi        pts/0    :0                     Thu Jul 12 10:05 - crash  (00:08)
    emi        :0                              Thu Jul 12 10:05 - crash  (00:09)
    

    Luego de pelear varias horas pensando que se trataba de un problema con el upgrade (sí, los panics comenzaron justo después de reiniciar luego del upgrade a 11.2, es increíble, cuando te tiene que pasar algo malo, te pasa en el peor momento).

  • En este breve artículo voy a demostrar cómo conocer, de forma exacta, cuál fue la fecha de instalación de un sistema operativo basado en Unix (GNU/Linux, FreeBSD).

  • Anteriormente demostré cómo utilizar el comando file (tanto en Linux como *BSD) para saber de qué tipo es el filesystem de un dispositivo o partición utilizando la opción -s (special files). Veamos ahora una alternativa que puede ser de gran utilidad en ciertos casos específicos.