Cuando Microsoft presentó por primera vez su WSL, hace poco menos de 4 años, hubo muchos usuarios encantados con la novedad. Entre otras cosas, tener el terminal de Linux en Windows nos permite usar muchas herramientas. Pero esta especie de «máquina virtual» tiene un pequeño problema: en realidad y explicándolo rápido y mal, no está conectado a ningún dispositivo de salida, por lo que no podemos ejecutar aplicaciones con GUI. O no de manera oficial, porque VcXsrv si nos lo va a permitir.
VcXsrv es un servidor de Windows X basado en xorg. Esta pequeña aplicación nos permitirá simular que tenemos un monitor conectado a nuestro WSL, con lo que podremos ejecutar aplicaciones con interfaz de usuario. Porque instalarlas ya era posible, pero mostraba un error cuando intentábamos lanzarlas. En este artículo te enseñaremos los pasos que tienes que seguir si, por ejemplo, quieres instalar Gedit en Windows 10.
Cómo ejecutar apps de Linux con GUI en Windows 10 gracias a VcXsrv
- Lo primero que tenemos que hacer es instalar WSL. En este artículo del pasado septiembre tenéis explicado todo lo necesario para hacerlo. IMPORTANTE: en el momento de escribir este artículo, no hay que actualizar a WSL 2; hay algunos fallos que bloquean la ejecución de apps de Linux con GUI en Windows 10. Probablemente los corrijan el en futuro, pero ahora no es posible.
- A continuación, instalamos VcXsrv, disponible en este enlace.
- Durante la instalación, lo dejaremos todo por defecto. Al finalizar la instalación, VcXsrv se ejecutará en segundo plano y podremos acceder a sus opciones desde la bandeja del sistema.
- Si nos muestra el aviso del cortafuegos, permitimos el acceso de «VcXsrv windows xserver».
- El siguiente paso es realizar las pruebas. En teoría, podemos instalar cualquier app y el comando dependerá de la distribución Linux que tengamos instalada. En Ubuntu y derivados, el comando es el de siempre (sudo apt install APP). Recordamos que instalar las apps en WSL es un proceso largo, así que habrá que tener paciencia.
- Una vez tengamos la app instalada, ejecutaremos el siguiente comando:
export DISPLAY=:0
- Una vez ejecutado el comando, debemos lanzar la aplicación. Para ello, tenemos que escribir su nombre en el terminal. En el caso de «Gedit», tenemos que escribir «gedit».
Si queremos ejecutar varias apps de Linux al mismo tiempo, tenemos que lanzarlas desde el terminal de Windows. Hay que recordar que para hacerlo, antes de cualquier comando tenemos que introducir «wsl» sin las comillas. El comando del paso 6 tendremos que usarlo antes de lanzar cada aplicación.
Solución de problemas
No suele haber muchos problemas, pero el más habitual es que estemos usando WSL 2, lo que ya hemos explicado que en estos momentos presenta algunos fallos. Lo que tenemos que hacer es bajar de versión (downgrade). Lo haremos de la siguiente manera:
- Abrimos Windows PowerShell y escribimos el siguiente comando para que nos muestre qué versión de WSL estamos usando:
wsl -l -v
- Si solo nos muestra las opciones de ayuda, se supone que estamos en WSL 1. Si aparece información sobre la versión y debajo de «VERSION» muestra «2», tenemos que bajar introduciendo el siguiente comando:
wsl --set-version Ubuntu 1
- El siguiente paso es paciencia. Puede tardar de 20 a 30 minutos (o más), dependiendo del equipo que estemos usando, en hacer el downgrade. Una vez se complete el proceso, las aplicaciones con GUI de Linux deberían funcionar sin problemas.
Ojo, puede haber problemas con apps multimedia
Lo explicado en este artículo es para la imagen. Esto significa que podremos ejecutar sin problemas aplicaciones como Gedit, pero no es buena idea instalar aplicaciones como Rythmbox porque el sonido no será el esperado. Aparte de eso, las aplicaciones funcionan bastante bien, como si fueran nativas. Al no depender de todo un entorno gráfico, la «máquina virtual» trabaja mucho más fluida que otras, como cualquiera que instalemos en Virtualbox o en el Hyper-V de la propia Microsoft.
No se descarta que en el futuro también mejoren las cosas en cuanto al sonido. En cualquier caso, lo explicado en este artículo servirá a todos aquellos que quieran usar algunas herramientas de Linux en Windows que de otro modo no sería posible. ¿Qué aplicación exclusiva de Linux te gustaría poder ejecutar en Windows 10?
Aportación para ejecutarlas desde WSL 2 sin tener que hacer downgrade a WSL 1:
https://github.com/microsoft/WSL/issues/4106
Un saludo,