¿Cómo utilizo Linux en Windows 10 (WSL) para desarrollar?

Pedro Caicedo
5 min readFeb 1, 2021

--

En el 2020 actualicé mi laptop y al instalar linux mint, no me reconocía todos los componentes (como la tarjeta de video y el lector de huellas por ejemplo), entonces no podía sacarle el 100% a mi nueva adquisición.

De fabrica la laptop venía con Windows 10 Home, y todos los componentes 100% funcionales. Así que me dí a la tarea de investigar ¿cúal era el mejor camino para utilizar linux desde windows?.

La solución que conocía hasta entonces era la de instalar una maquina virtual, tal vez utilizar virtual box, pero no me parecía tan nativa para estos tiempos xD.

Así que investigando un poco más encontré WSL (Windows Subsystem Linux), siendo esta la nueva funcionalidad nativa que dispone Windows 10 para proveer soporte nativo de Linux. Basícamente WSL utiliza virtualización para correr nativamente el Kernel de Linux.

by www.thomasmaurer.ch

Para instalar WSL en la versión 2, puedes seguir esta guía provista por Microsoft, una vez completes todos los pasos, debes tener instalado Ubuntu. Y se puede verificar rápidamente usando el comando wsl -l -v desde un terminal de PowerShell.

PS C:\Users\caice> wsl -l -v
NAME STATE VERSION
* Ubuntu Stopped 2
PS C:\Users\caice>

Ya en este punto tenemos instalado Ubuntu, el cúal se puede acceder cómo cualquier otro programa en windows.

Y se abriría un terminal con Ubuntu:

Ahora ya tengo linux pero, ¿puedo ejecutar aplicaciones gráficas (GUI)?

La respuesta es sí, básicamente tienes que ejecutar estos pasos:

Durante la instalación recuerde deshabilitar el control de acceso, porque puede dar errores. Y también se recomienda guardar la configuración, y así abrir el cXsrv con la configuración adecuada de forma rápida

Recuerde, agregar a VcXsrv en el firewall de Windows.

También lo puedes agregar para que se inicie de forma automática si lo agregas en la carpeta C:\Users\MI_USUARIO\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

  • Como segundo paso debemos setear la variable de entorno DISPLAY en nuestro linux, recuerde que la IP que asigna host de linux (WSL) y la IP de Windows host, no son las mismas. Para lograr esto desde el terminal de linux (Ubuntu en mi caso) copiar export DISPLAY="`grep nameserver /etc/resolv.conf | sed 's/nameserver //'`:0" y luego verificar con un echo $DISPLAY así:

Para que este comando se ejecute de forma automática cuando se lance el WSL, lo podemos agregar en /etc/bash.bashrc así:

  • Ya como último paso, sería probar ejecutando gedit, ejecutandolo desde la consola de linux (si no lo tienes instalado, lo puedes instalar con un sudo apt-get install gedit)

Ya con esto podemos ejecutar programas con interfaz gráfica desde linux, si quiere profundizar más puede revisar:

Otra pregunta muy común es: ¿Cómo comparto archivos entre los dos sistemas?

Desde linux se monta en /mnt/c/ todo el sistema de archivos de Windows.

Y desde Windows puedes acceder sin ningún problema, usando la ruta \\wsl$

También podemos crear un enlace simbólico a la carpeta raíz / de nuestro linux y acceder de forma directa. Use el comando mklink /D C:\Ubuntu \\wsl$\Ubuntu para crear un link simbólico a la carpeta Ubuntu (en mi caso) desde el Command Prompt de Windows (debes tener permisos de administrador el ejecutar el Command Prompt).

Ya para finalizar, pueden crear un acceso directo (shortcut) de sus aplicaciones de linux y así tener todo integrado. Para lograr esto usé el comando y por ejemplo levantar gedit.

C:\Windows\System32\wsl.exe export DISPLAY=”$(grep -m 1 nameserver /etc/resolv.conf | awk ‘{print $2}’):0.0"; gedit

Ahora con sólo hacer doble click al acceso directo, abrimos Gedit.

Nota: Me ha pasado que se me cierran las aplicaciones con interfaces (GUI) levantadas desde linux. Aún no sé porqué pasa pero por ahora lo que estoy haciendo es reiniciar el WSL usando el comando: wsl — shutdown y vuelvo a ejecutar el programa y listo.

--

--

Pedro Caicedo
Pedro Caicedo

Written by Pedro Caicedo

Innovador por naturaleza, desarrollador de software de profesión y futbolista de corazón.

No responses yet