Uno de los problemas que me encuentro con el desarrollo de aplicaciones para Ubuntu es que tengo que ir probándola en las diferentes versiones que aparecen. Esto me obliga a tener una o dos distribuciones instaladas en mi equipo, porque en ocasiones, virtualizarlas no es suficiente. Desde hace tiempo, utilizo una partición donde guardo documentos. Sin embargo, esto no es suficiente. Y todo ello ha dado lugar este artículo como tener varios sistemas Linux en un PC y no morir en el intento.

El otro día mientras escuchaba un podcast de Yoyo en Salmorejo Geek sobre como guardaba sus documentos personales, me decidí a darle una vuelta mas al sistema, y esto es lo que te voy a intentar explicar a continuación.

Varios sistemas Linux en un PC

Antes de nada y para que nadie se lleve a engaño, indicar que todos los sistemas Linux que instalo en mi equipo son Ubuntu. Esto no quita que esta misma solución se pueda aplicar a otras distribuciones.

Desarrollo de aplicaciones en Ubuntu

Como comentaba en la introducción, el desarrollo de aplicaciones para Ubuntu se encuentra con la necesidad de revisar que cada aplicación funciona correctamente en cada una de las versiones que se liberan. Es decir, aunque yo desarrollé my-weather-indicator para Ubuntu 10.10 Maverick Meerkat, ahora en la versión 17.04 Zesty Zapus, necesito probarla también.

Esto es así, porque de unas versiones a otras cambian las librerías que utilizo en la aplicación, cambia el propio entorno de escritorio y cambia GNOME, lo que en muchas ocasiones obliga a un rediseño de la aplicación.

En otros casos…

No solo el desarrollo de aplicaciones lleva a tener varios sistemas Linux en un PC. Es posible que seas un distrohopper, es decir, uno de los tantos de usuarios Linux que disfrutan probando cada una de las distribuciones y versiones que aparecen en el extenso universo Linux.

Otra razón que se me ocurre, aunque seguro que hay cientos de razones mas, es que simplemente para según que trabajo estés mejor en un entorno de escritorio y otro.

Centralización

El problema de tener varios sistemas Linux en un PC (o no), es que en cada uno de ellos tienes documentos, y es probable que estando trabajando en un sistema quieras utilizar un documento que esté en otro sistema.

Existen diferentes soluciones para resolver esto, desde utilizar la misma partición /home para todos, a utilizar una partición independiente donde situar todos tus documentos.

El problema de la partición /home común son los archivos de configuración que puede ser que te generen problemas en un sistema operativo o en otro, por estar utilizando diferentes versiones.

Sin embargo, hay una solución muy simple, con la que no notarás el cambio de un Linux a otro… los enlaces simbólicos.

Y ¿porque no enlazarlo todo?. Pues la razón para esto radica en que al cambiar de versión, la configuración de un escritorio puede entorpecer en otra instalación…

La propuesta para resolver como tener varios sistemas Linux en un PC

Directorios

Mi propuesta es bastante simple. Cada uno de los Linux que tienes instalados en tu equipo, tiene sus directorios ~\Escritorio , ~\Documentos , ~\Descargas , etc… Elimina todos esos directorios y haz un enlace simbólico al que se encuentra en tu partición común.

Es decir, si tu partición común la montas en /datos en esta partición común tendrás un directorio que se llamará /datos/Escritorio de forma, que cada uno de los ~\Escritorio de todos los Linux instalados en tu equipo apuntaran a /datos/Escritorio .

De esta manera cuando entres en cualquiera de los sistemas Linux instalados y te enfrentes al escritorio, encontrarás exactamente lo mismo.

Esto mismo lo podemos hacer con el resto de directorios…

Configuraciones

Sin embargo, podemos ir mas lejos todavía… En mi caso particular, utilizo GIMP e Inkscape para hacer las imágenes que ves en este sitio y para mi trabajo.

Estas aplicaciones no suelen cambiar de versión tan frecuentemente como Ubuntu, con lo que su archivo de configuración, puede permanecer inalterado durante años, sin que esto afecte a las distintas versiones.

Igual que hemos hecho con los directorios, también podemos hacer con los archivos de configuración. Es decir, podemos hacer un enlace simbólico desde el directorio de configuración o archivo de configuración que se ubica en ~/.config/GIMP/ a /datos/.config/GIMP .

Siguiendo este procedimiento nos encontraremos que aunque entremos en diferentes Linux en nuestro equipo, y trabajemos con diferentes GIMP, la apariencia de cada uno de ellos siempre será la misma. Siempre y cuando tengamos instalados los mismos complementos, etc.

Esto nos llevará a ahorrar mucho tiempo y ser más productivos.

Una solución para tener varios sistemas Linux en un PC

Esta solución funciona muy bien, sin embargo, tiene un pequeño inconveniente. Cada vez que instales una nueva distribución o una nueva versión, tienes que realizar todos estos enlaces…

Para darle una solución a este problema he creado un sencillo script que realiza estos enlaces simbólicos, de forma que cada vez que instalo una nueva distribución o versión solo tengo que ejecutar el script, que por supuesto está instalado en /datos .

Este script está en GitHub. Puedes utilizarlo fácilmente, descargarlo, compartirlo, contribuir o lo que consideres.

Una indicación, en las primeras líneas de linker.py tienes el directorio de origen que no habría que modificarlo, y el directorio de destino (este a lo mejor si que consideras en borrarlo).

A continuación tienes todos los directorios a enlazar. Por supuesto que lo que enlazas es a ~/ seguido del directorio o archivo que consideres. El funcionamiento es muy sencillo. Lo que hace es mirar si en /datos existe el directorio de origen, si existe borra, el directorio de tu directorio de inicio y realiza el enlace simbólico. Si en /datos no existe, primero copia el de tu directorio de inicio y luego lo enlaza.

Conclusiones

La solución de tener todo en un directorio aparte es muy buena solución tal y como lo comentaba Yoyo. Ahora, completado esto con los enlaces simbólicos, el funcionamiento es impecable. De esta manera, yo paso de una distribución, versión o instalación a otra, sin echar nada de menos. Muy recomendable.