Instalación y configuración de WSL

¿Para qué Sirve esta Guía?

Esta es una guía, rápida y simple, de cómo instalar y configurar Windows Subsystem for Linux (WSL) para las condiciones del ramo. Destinada a alumnos sin ninguna experiencia previa con el uso de Linux.

Pre-requisitos

Para ejecutar los siguientes comandos, debe ejecutar Windows 10 versión 2004 y posteriores (compilación 19041 y posteriores) o Windows 11.

Para verificar la versión de Windows, puede hacerlo en Configuración -> Sistema -> Acerca de o bien, ejecutar winver en la barra de búsqueda de Windows.

Activar WSL

Primero, se necesita activar las caracteristicas relacionadas con WSL. Para esto, se debe abrir el PowerShell de Windows en modo administrador y luego ejecutar

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

Para activar las caracteristas de WSL2, se debe ejecutar también

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Alternativamente, se puede activar ambas características buscando en el inicio de Windows Activar o Desactivar Características de Windows, y se activa Plataforma de Maquina Virtual y Subsistema de Windows para Linux

Terminado esto, se debe reiniciar el equipo para guardar los cambios. Tras iniciar Windows nuevamente, se debe abrir PowerShell en modo administrador, y ejecutar
wsl --install
Luego para poder instalar WSL2, es necesario instalar el paquete de actualizacion de WSL. Esto se puede hacer mediante
wsl --update
En caso de que no se actualice vía comando descargar e instalar el paquete de instalacion de WSL para plataformas Intel y AMD en el siguiente link.
En caso de utilizar un equipo con plataforma Snapdragon u otro dispositivo ARM, utilizar este link
Hecho esto, es posible que WSL tenga seleccionado por defecto su version inicial WSL (y no WSL2). Para modificar esto, abrir el Powershell, y ejecutar:
wsl --set-default-version 2

Instalación de Distribucion de Linux

Abrimos la Microsoft Store, y descargamos la distribucion de Linux a usar. Para una lista completa de las distribuciones de Linux aceptadas por WSL, puede consultar la lista distribuciones aceptadas.

Una vez instalada, se debe abrir la aplicación o seleccionar la opción de ubuntu en la terminal unificada de windows (más detalles revisar), lo que instalará el terminal. Finalizada la instalacion, nos pedirá definir el nombre de usuario y contraseña. El nombre de usuario solo puede tener letras, numeros, guion (-) y guion bajo (_).

Con la terminal de nuestra distribucion de Linux ejecutandose, ejecutamos en Poweshell

wsl --list --verbose
Tambien se puede instalar vía línea de comando:
wsl --install -d
Si todo se ha instalado correctamente, veremos nuestra distribucion de Linux, en estado running, y bajo la columna VERSION, un numero 2 (Referente a WSL2).

Felicitaciones, ahora tiene una terminal de Linux, totalmente funcional, corriendo en su equipo Windows.

IMPORTANTE: Recuerde que todo lo que instale en su distribucion de Linux, es independiente de lo que instale en Windows, esto significa que es posible instalar JAVA 14 en Windows, y correr JAVA 11 en su distribucion de Linux. De la misma manera, puede instalar varias distribuciones distintas, todas independientes entre si.

Si desea mas información de WSL, puede consultar la documentacion oficial de Microsoft

Servidor X

Si bien WSL2 permite ejecutar aplicaciones graficas desde cualquier distribucion de Linux instalada, esta característica esta disponible solo para equipos Windows Insider, por lo que, en la mayoria de los casos, es necesario instalar un servidor X. El servidor X que utilizaremos sera VcXsrv Windows X Server, disponible en el siguiente link.

La instalación es directa, y no requiere configuracion especial. Una vez instalado, se creará un acceso directo en el escritorio el cual tendremos que inicar cada vez que se desee utilizar aplicaciones graficas en WSL. Es importante corroborar que la opcion Disable access control esté seleccionada, para que no existan problemas de permisos al intentar ejecutar aplicaciones.

El siguiente paso es definir la variable DISPLAY en la distribucion de Linux que estemos usando. Esto se debe a que WSL2 no se ejecuta con la misma IP que la maquina Windows.

Para hacer esto, en WSL ejecutamos los siguientes comandos
export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0
export LIBGL_ALWAYS_INDIRECT=1
Para evitar tener que ejecutar ese comando cada vez que WSL se inicia, es posible agregar los comandos anteriores al final del archivo /etc/bash.bashrc, el cual pueden editar, por ejemplo, ejecutando
sudo nano /etc/bash.bashrc

Para probar que todo haya sido configurado de manera correcta, podemos intentar correr aplicaciones GUI desde la terminal de Linux.

Para instalar GEDIT, un editor de texto basico, ejecutamos

sudo apt install gedit
gedit

Para instalar un conjunto de aplicaciones x11

sudo apt install x11-apps
xeyes

Windows Terminal (Opcional)

Ya que estaremos trabajando con distintas terminales, nos será util unificar todas las terminales en una terminal "unica". Para eso, es recomendable descargar Windows Terminal desde la Microsoft Store

Esta aplicacion nos permite manejar todas las terminales instaladas desde una misma ventana, asi como configurar atajos del teclado, seleccionar una terminal por defecto, y copiar y pegar entre disintas terminales.