Tag: freebsd

BSD is dead

Es una broma recurrente entre gente que usa *nix decir BSD is dead en alusión a el bajo porcentaje de uso que tiene esta familia de sistemas operativos que son bastante parecidos a Linux.

Particularmente yo prefiero Linux en vez de *BSD, pero hay gente que prefiere BSD sobre Linux y esto genera intensas flamewars. Yo creo que ambos son excelentes SOs para servidores, cada uno tiene sus pros y contras pero en general ambos pueden hacer lo mismo.

El video que presento a continuación se llama BSD is still Dying y es la continuación de uno denominado BSD is dying donde se cuenta un poco que es BSD, sus orí­genes, quiénes lo usan y que esta pasando con su comunidad, es una excelente charla dada por Jason Dixon en la conferencia DCBSDCon2009

Y si quieren ver la antigua charla que es casi igual visiten:
BSD is Dying

Instalar psycopg2 en FreeBSD

Me ví­ en la situación de tener que trabajar con Postgres sobre FreeBSD y necesitaba un script para jalar datos de unas bases de datos en formato DBF (si, DBF pueden creerlo?) fue asi que encontre un script llamado dbf2pgsql que fue hecho por Hiroo Imaki.

Luego de descargarlo, lo modifiqué un poco para que se adaptara a mis necesidades y cuando lo ejecuté encontré un problema, me hacia falta la librerí­a psycopg2 que es un magní­fica librerí­a que permite la interacción entre Python y Postgres, el problema es que por lo visto da muchos problemas para poder ser instalado.

El primer requisito para poder instalar psycopg2 es tener instalado Setuptools luego de instalarlo trate de instalar pysopg2

python setup.py build

No lo pude hacer porque tení­a el siguiente error
error: static declaration of ’round’ follows non-static declaration

Luego de mucho buscar por una solución me encontré con este post de Reed Obrien
http://reedobrien.blogspot.com/2008/02/error-building-psycopg-custom-egg.html

Por lo visto es un error para poder hacer el build en FreeBSD, solucion pasa por editar el archivo config.h y comentar las siguientes lí­neas:
#if defined(__FreeBSD__) || (defined(_WIN32) && !defined(__GNUC__)) || defined(__sun__) || defined(sun)
/* what's this, we have no round function either? */
/*
static double round(double num)
{
return (num >= 0) ? floor(num + 0.5) : ceil(num - 0.5);
}
*/
#endif

Luego de esto cruce los dedos:
python setup.py build
Bingo! funcionó sin problemas, y ahora el paso final
python setup.py install

Y ahora ya pude correr con éxito el script dbf2pgsql, tardé mucho en dar con la respuesta, asi que espero que esto pueda ser útil.