Usar una máquina virtual como entorno de desarrollo integrado

Para programar una aplicación hace falta un ordenador con un sistema operativo y varias herramientas de desarrollo. Este entorno de desarrollo es relativamente sencillo de preparar. El problema puede aparecer si se trabaja en un equipo y cada programador tiene un entorno diferente. Las herramientas pueden ser las mismas pero con versiones ligeramente diferentes. Ésto en principio no es un problema pero puede suponerlo si hay cambios en esas versiones que afectan al código desarrollado.

Hay dos formas de afrontar este problema. La primera es usando todo el equipo las mismas versiones de las herramientas de desarrollo. Si se trabaja en varios proyectos al mismo tiempo con diferentes versiones de las librerías puede ser un poco complicado. La otra forma consiste en usar una máquina virtual que contenga todas las herramientas de desarrollo y sea la misma para todo el equipo.

Elección de la distribución

En la máquina virtual se puede instalar cualquier distribución de GNU/Linux. La elección entre una distribución u otra depende de las necesidades que se tengan. Por ejemplo, si la aplicación a programar se va a ejecutar en un servidor con Ubuntu conviene usar esa distribución. Aunque se puede usar otra distribución sin demasiados problemas, si que es cierto que el desarrollo se simplifica si los entornos de desarrollo y producción son el mismo.

Para este artículo he elegido como distribución Ubuntu Mate 16.04. Las razones son varias:

  • Está basada en la última versión LTS de Ubuntu.
  • El SDK de Ubuntu Touch tiene un PPA preparado para Ubuntu 16.04
  • Se puede configurar Mate para que haga el renderizado del escritorio por software. En la máquina virtual hay problemas con las aplicaciones que usan OpenGL.

Instalación del entorno de desarrollo

De la misma forma que se elige una distribución, se puede elegir la herramienta de virtualización  En mi caso he elegido VirtualBox porque la he usado durante más tiempo. Otra opción es emplear VMware. Con independencia de la herramientas que se use, conviene que sea multiplataforma. De esa forma se puede trabajar con independencia del sistema operativo del ordenador host.

En VirtualBox hay que crear una máquina virtual que tenga una configuración similar a la mostrada a continuación. De forma resumida interesa un disco duro de 25 GB con el espacio preasignado y tanta memoria RAM como sea posible.

Configuración de VirtualBox

Configuración de VirtualBox

Una vez se ha iniciado la máquina virtual hay que seguir el asistente de instalación.

Inicio de Ubuntu Mate

Inicio de Ubuntu Mate

Al marcar las dos casillas se instalan las actualizaciones y se habilitan los repositorios que tienen software privativo.

Actualizaciones y software de terceros

Actualizaciones y software de terceros

En el siguiente paso se configuran las particiones del disco duro. Si el disco tiene datos aparecerán las opciones que se muestran en la captura de pantalla.

Particiones del disco duro

Particiones del disco duro

 

Confirmación de las particiones

Confirmación de las particiones

Después de configurar las particiones empezará la instalación de Ubuntu Mate. Mientras se realiza la instalación hay que configurar algunas opciones del entorno como son la localización, el idioma o los datos del usuario.

Localización del usuario

Localización del usuario

 

Disposición del teclado

Disposición del teclado

Configuración del usuario

Configuración del usuario

Después de un par de minutos el instalador finalizará y nos pedirá reiniciar el equipo.

Instalación finalizada

Instalación finalizada

Ya se puede empezar a trabajar con Ubuntu Mate.

Primer inicio

Primer inicio 

Instalación de las Guest Addition

Tanto VirtualBox como VMware tienen un paquete de utilidades que mejora la integración entre el host y la máquina virtual. Por esta razón el siguiente paso es instalar dicho paquete de utilidades. Antes de instalar las Guest Addition en VirtualBox hay que instalar las dependencias. Para el caso de Ubuntu los paquetes son build-essential y dkms.

Instalación de las Guest Addition (1)

Instalación de las Guest Addition (1)

Después hay que seleccionar en el menú de VirtualBox la opción Dispositivos/ Insertar imagen de CD de las <<Guest Addtion >>. Aparecerá un dispositivo nuevo en el escritorio. Hay que abrirlo para que se ejecute el instalador. Esperamos a que se compilen los módulos y después reiniciamos la máquina virtual.

Instalación de las Guest Addition (2)

Instalación de las Guest Addition (2)

Personalización de Mate

Una de las ventajas que tiene Mate es que se puede personalizar para adaptarlo a nuestros gustos. Si queremos trabajar con el estilo de Unity, sólo hay que ejecutar la aplicación (instalada de serie) Mate Tweak y configurarlo. La primera captura corresponde a la configuración por defecto mientras que la segunda en la configuración con Unity.

Configuración de Mate Tweak

Configuración de Mate Tweak

Configuración de Munity

Configuración de Mutiny

Instalación de las herramientas de desarrollo

Una vez se tiene la distribución instalada en la máquina virtual, el siguiente paso es instalar las herramientas de desarrollo. En mi caso voy a utilizar la máquina virtual para programar aplicaciones para Ubuntu Touch usando QML y JavaScript. Los comandos serían (podéis verlos en detalle en el siguiente enlace):

# Actualización del sistema
sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

# Instalación del repositorio del SDK
sudo add-apt-repository ppa:ubuntu-sdk-team/ppa && sudo apt-get update && sudo apt-get install ubuntu-sdk

# Asignación del usuario al grupo lxd
sudo usermod -a -G lxd usuario

Para lanzar el SDK de Ubuntu Touch hay que cerrar la sesión. Nota importante: no hay que lanzar ahora el comando o será necesario borrar la configuración del entorno de desarrollo para continuar. Lo hago a modo de ejemplo para que se vea el problema que aparecerá. Al lanzar el entorno (ubuntu-sdk-ide) se llega a la siguiente pantalla. La parte centra corresponde al editor y con la pantalla negra puede ser un poco complicado usarlo.

Error de OpenGL en QtCreator

Error de OpenGL en QtCreator

Configuraciones especiales

Como he comentado antes, las aplicaciones que usan OpenGL pueden dar problemas al usarlas en la máquina virtual. Un ejemplo se observa en el editor Atom  El editor se puede instalar como paquete Snap o descargando el archivo . deb de la Web del proyecto. Al ejecutar la aplicación, aparecerá una pantalla vacía.

Error de Atom al usar OpenGL

Error de Atom al usar OpenGL

Para que se pueda usar la aplicación es necesario deshabilitar el uso de OpenGL. Hay que ejecutar en una consola el comando.

atom --disable-gpu

El problema se solucionará aunque se pierde la aceleración que usa el editor.

Atom sin usar OpenGL

Atom sin usar OpenGL

Para poder trabajar con el IDE de Ubuntu Touch hay que hacer una cosa similar. Se tiene que lanzar el entorno con el comando:

ubuntu-sdk-ide -noload Welcome

Tiene que aparecer el asistente de inicio en el que se configura el SDK de Ubuntu. Si no aparece habéis ejecutado el IDE sin leer la advertencia. No es un problema grande. Hay que ir a la carpeta ~/. config/ y borrar la carpeta QtProject. Después se tiene que lanzar el IDE con el comando que he puesto antes.

QtCreator sin OpenGL

QtCreator sin OpenGL

Para hacer el cambio permanente hay que finalizar el asistente. Después en el menú Help /About Plugins hay que desmarcar el Plugin ‘Welcome’. Con este cambio ya se puede lanzar de forma normal el SDK.

Desactivar el plugin Welcome en QtCreator

Desactivar el plugin Welcome en QtCreator

Conclusiones

En el artículo se ha instalado Ubuntu Mate 16.04 en una máquina virtual y dos aplicaciones destinadas al desarrollo: el SDK de Ubuntu Touch y el editor Atom. Ambas aplicaciones usan OpenGL y no funcionan directamente en la máquina virtual. Sólo hay que hacer unos pequeños cambios para trabajar sin problemas. Hay otra forma de evitar este problema y consiste en deshabilitar la aceleración 3D de la máquina virtual. Este cambio afecta a todo el sistema y dependiendo del entorno que se use, puede ser más o menos viable.
Una vez se han configurado todas las aplicaciones de la máquina virtual es posible guardar su estado (snapshot). De esta forma se puede restaurar el estado con independencia de como esté la máquina virtual. Por ejemplo, se instala una versión más reciente de una librería y en el proceso se rompe parte del sistema. Para solucionar el problema sólo hay que volver al último snapshot y el sistema estará como si no hubiera pasado nada. A efectos de tiempo de trabajo ésto puede suponer un par de horas en restaurar el entorno de desarrollo.
0 comentarios

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *