Hasta ahora en nuestra búsqueda por conocer el relativamente actual Bash Shell de Ubuntu en Windows 10 nos hemos dado cuenta que éste soporta oficialmente las aplicaciones gráficas del escritorio de Linux. A ello Microsoft ha dicho que esta característica está diseñada sólo para los desarrolladores que deseen ejecutar las utilidades de los terminales de Linux. Pero el subyacente «Subsistema de Windows para Linux» es más potente de lo que Microsoft deja entrever.
Si bien es cierto que como acabamos de decir es posible ejecutar aplicaciones gráficas de Linux en Windows 10, pero hay que tener en cuenta que no esto no se admite oficialmente. No todas las piezas de software de Linux funcionan, y las aplicaciones gráficas son aún más complejas y tienden a tener mayor dificultad para ser ejecutadas. Pero esperamos que éstas con el tiempo sean más estables en la medida que Microsoft mejore el subsistema subyacente de Windows para Linux.
Cómo Funciona las aplicaciones de Linux con el bash de Ubuntu
Antes que cualquier cosa, vamos a ejecutar y explicarte exactamente cómo funciona esto para que puedas tener una cierta comprensión de lo que estamos haciendo aquí en este tutorial.
Windows 10 incluye un «subsistema de Windows para Linux» subyacente que permite a Windows 10 ejecutar el software de Linux mediante la traducción de llamadas del sistema de Linux a las llamadas del sistema de Windows.
Cuando se ejecuta el programa bash.exe, se descarga e instala una imagen completa del espacio del usuario de Ubuntu en su ordenador. Esto incluye exactamente los mismos archivos binarios o las aplicaciones que se ejecutan en Ubuntu. Este entorno del «Bash en Ubuntu en Windows» funciona gracias al Subsistema subyacente de Windows para Linux.
Es necesario hacer una aclaratoria: Microsoft no quiere pasar mucho tiempo trabajando en el software gráfico, ya que esta característica está diseñada para herramientas de los desarrolladores de línea de comandos. Pero la razón técnica principal es que las aplicaciones gráficas no son compatibles, es decir, requieren un «servidor X» para proporcionar la interfaz gráfica. Es un típico escritorio Linux, que el «servidor X» muestra automáticamente cuando se inicia el equipo y esto ocurre de igual forma en todo el escritorio y las aplicaciones que utilices.
Pero al intentar de abrir una aplicación gráfica de Bash en Windows, sin embargo, este podría complicarte el proceso al impedirte que puedas abrir una pantalla.
Por otra parte por otra parte, existen ejemplos de las aplicaciones del servidor X que puedes instalar en un escritorio de Windows. Por lo general, estas se utilizan para hacer que las aplicaciones de Linux se ejecuten en otros equipos como el protocolo «X11» que es bastante antiguo y se ha sido diseñado con la capacidad de gestión a través de una conexión de red.
Si instalas una aplicación de servidor X en el escritorio de Windows y cambias un ajuste en el intérprete de comandos (Bash Shell), las aplicaciones enviarán su producción gráfica hacia la aplicación del servidor X las cuales van a aparecer en el escritorio de Windows. Todo esto que hasta ahora te hemos contado debería funcionar bien, suponiendo que estas aplicaciones no dependen de las llamadas del sistema de Linux que el subsistema de Linux para Windows no soporta soporta aun.
Algo indispensable para lograr comprender esto es ir a la práctica. Solo sigue los siguientes y entenderás mejor todo lo antes explicado:
Paso #1: instalar un servidor X
Existen varios servidores X que se podrían instalar en Windows pero nosotros recomendamos el Xming. Solo descárgalo aquí e instálalo en tu ordenador de Windows 10.
El proceso de instalación es simple: sólo puedes aceptar la configuración predeterminada y seguir adelante. A continuación, se iniciará automáticamente y se ejecutará la bandeja del sistema, a la espera de que le permitas ejecutar los programas gráficos.
Paso #2: Instalar el programa
Puedes instalar los programas gráficos del escritorio de Linux así como cualquier otro programa que desees, usando el comando “apt-get” en el entorno del Bash basado en Ubuntu. Por ejemplo, digamos que si tu quieres instalar las gráficas, GTK que basado en el editor vim. Se podría ejecutar el comando siguiente en la ventana del Bash:
sudo apt-get install vim-gtk
Este tendrá que pasar por el proceso de instalación en la ventana de línea de comandos, al igual como lo haría en Ubuntu.
Paso #3: configurar la pantalla variable del entorno
Ahora ya en este punto, tendrás que establecer la variable del entorno «DISPLAY» para señalar el servidor X que se ejecuta en su ordenador de Windows 10. Si no se hace esto, las aplicaciones gráficas simplemente no tendrán efecto y por consecuencia no se iniciarán.
Para ello, ejecute el comando siguiente en el entorno Bash:
export DISPLAY=:0
Esta configuración sólo se aplica a la sesión del Bash actual. Si cierras la ventana, el Bash la olvidará. Por consecuencia tendrás que ejecutar este comando cada vez que se vuelve a abrir el Bash y desees ejecutar una aplicación gráfica.
Paso #4: Iniciar una aplicación
Ahora puedes simplemente iniciar una aplicación gráfica escribiendo el nombre de su archivo ejecutable, como deberías escribir cualquier otro comando. Por ejemplo, para iniciar vim-gtk, tu escribirías:
gvim
Es así de simple. Si la aplicación se bloquea después del lanzamiento, la llamadas del sistema Linux requeriría posiblemente no ser apoyadas por el subsistema de Windows para Linux. De ser así no hay mucho que puedas hacer al respecto.
También se pueden combinar los pasos #3 y #4, si lo deseas. En lugar de exportar la variable DISPLAY una vez por toda una sesión del Bash shell, termina de ejecutar una aplicación gráfica con el siguiente comando:
DISPLAY=:0 command
Por ejemplo, para iniciar gvim, que correría con:
DISPLAY=:0 gvim
Para finalizar recuerda que esto no está soportado oficialmente, por lo que es posible que encuentre errores con aplicaciones aún más complejas. Una máquina virtual es una solución más fiable para el funcionamiento de muchas aplicaciones gráficas del escritorio Linux en Windows 10, pero esta es una buena solución para algunas de las cosas más simples que encontrarás.
Una idea que se me ha ocurrido…
En vez de tener que poner el comando cada vez que se abre un bash, ¿por qué no editas el archivo .bashrc de la carpeta del usuario, añadiendo al final del documento el comando que se menciona en el artículo?
Un saludo