Microsoft ha sacad0 del estado beta el Subsistema de Linux en Windows (WSL), que ahora formará parte de la nueva actualización Windows 10 Fall Creator Update (FCU). Ahora ya es posible acceder a un shell de Linux desde Windows sin necesidad de un arranque dual y con ello acceder a todas las herramientas de línea de comando. Pero, ¿será posible ejecutar aplicaciones gráficas en WSL?, la respuesta es un sí con algunos condicionales.
El sistema gráfico en Linux está a cargo de un programa llamado X.org, que es una implementación de software libre del X Windows System. Este sistema tiene dos partes cliente y servidor, así que para poder ejecutar aplicaciones gráficas de Linux sólo debemos instalar un servidor X y una muy buena opción para Windows es Xming. Así que sólo debemos instalar este servidor, que es tan sencillo como descargar y ejecutar el instalable.
Luego de tener el servidor X instalado, ya podemos instar un programa que hace uso del entorno gráfico, por ejemplo probemos instalar vim-gtk (un entorno gráfico para el clásico editor de texto planp vi). Para ello ejecutamos este comando desde el WSL:
sudo apt-get install vim-gtk
Y deberíamos de obtener una pantalla como esta:
Ahora, se necesita establecer la variable de entorno “DISPLAY” para apuntar al servidor X que se ejecuta en nuestro PC con Windows 10. Si no lo hace, las aplicaciones gráficas simplemente no se lanzarán.
Para ello, ejecutaremos el siguiente comando en el entorno WSL:
export DISPLAY=:0
Una vez establecida esta variable de entorno, ya podemos ejecutar el gvim:
Tengamos en cuenta que esta configuración de la variable de entorno DISPLAY sólo se aplica a la sesión de Bash actual. Si se cierra la ventana, el Bash lo olvidará. Tendremos que ejecutar este comando cada vez que vuelva a abrir una sesión Bash y querramos ejecutar una aplicación gráfica. Para que este valor se preserve debemos agragar el comando “export DISPLAY=:0” al final del archivo .bashrc
Probemos instalar el juego solitario con el comando:
sudo apt-get install xsol
Y ejecutandolo, podemos ver que corre sin mayores problemas:
Tengamos en cuenta que sólo los programas gráficos que se basan en el entorno gráfico X podrán ser ejecutados, todos aquellos que requiren funcionalidades extras, puede que no corran. Esto es algo de ensayo y error.
Espero que este pequeño tutorial les sea de utilidad.