Si utilizas varias aplicaciones que tienen librerías que entran en conflicto entre sí, una solución puede ser "enjaularla" para que no entre en conflicto con tu sistema. Aquí explico cómo crear una jaula en pocos pasos, que permitirá entre otras cosas aislar aplicaciones.
Además, el uso de jaulas también puede resultar útil si tienes ciertos servicios como servidores web o ftp y quieres aumentar un poco mas la seguridad del sistema, ya que hace, al menos algo mas difícil, el acceso al sistema, debido a que éste queda, en teoría, fuera del alcance del sistema enjaulado.
En mi caso, yo he utilizado la jaula para aislar dos compiladores cruzados para microcontroladores AVR, debido a que utilizo tinyos y necesita una versión muy concreta de avr-libc que entra en conflicto con ya que yo tengo instalada.
Empezando
Bueno, para poder empezar, necesitas tener instalado cdebootstrap, si usas Debian ya sabes, apt-get (o aptutude, que esto parece como ser del Bétis o del Sevilla ;)).
Una vez con cdebootstrap instalado, creas un directorio en el lugar en el que quieras tener tu jaula instalada. Yo por ejemplo, la he creado en /usr/local/tinyos por ésto de tener las cosas un poco mas ordenaditas. Cuando ya tengas el directorio creado invocas a cdebootstrap con un comando tal que éste:
Esto crea, dentro de /usr/local/tinyos/ un sistema unstable totalmente desnudo (con lo mas básico) partiendo del repositorio que le hemos pasado.
Ahora, para poderlo utilizar, necesitas montar /proc y /dev. Éste último no es que sea especialmente necesario a menos que vayas a utilizar algún dispositivo de entrada/salida. En mi caso, como necesito un puerto serie para poder programar las motas, he de montarlo dentro de la jaula.
Para montar las unidades y acceder a la jaula, se puede utilizar un script como el siguiente, que lo hace todo de forma automática:
Este script monta /proc, /sys y /dev dentro de la jaula y ejecuta chroot para cambiar el raíz. Cuando sale del chroot, desmonta todo otra vez.
Con la reciente actualización del drupal de CRySoL hemos podido hacer el necesario upgrade a PHP5, y eso nos ha permitido instalar un módulo bastante decente para colorear listados de código con GeSHi.
Después de algunos problemillas, hemos migrado el portal a drupal-5.7. Lo sentimos por las molestias que esto te haya podido causar, pero era necesario porque nos habíamos quedado bastante obsoletos. Los problemillas de última hora eran:
Interesante artículo sobre errores de programación que cometemos todos. Está especialmente orientado a programación orientada a objetos (valga la rebuznancia).