X Linux
Menú de documentación

Resumen/Scripts de WSL

Uso

Configuracion de X Linux para WSL solo desde terminal. Dos partes, ejecutadas desde un checkout de este repositorio tras importar el rootfs de xlnux/wsl.

El punto de entrada es install.sh, que se ejecuta dos veces. setup.sh es el despachador directo y acepta las mismas opciones.

Parte 1 - Sistema (root)

Una importacion nueva de WSL arranca como root. Deja un checkout de este repositorio donde puedan leerlo tanto root como el futuro usuario (por ejemplo /opt/x-wsl-scripts, no /root), y ejecuta el instalador:

./install.sh

El instalador detecta que eres root y ejecuta la fase de sistema. Pregunta por:

  • locale a activar y usar como LANG (por defecto en_US.UTF-8);
  • mapa de teclado de consola (por defecto us);
  • zona horaria (por defecto windows-time, que deja que WSL refleje el reloj de Windows; puedes elegir UTC o cualquier zona IANA como Europe/Madrid);
  • usuario a crear o asegurar (por defecto el de SUDO_USER, si no x);
  • shell de login para el usuario (zsh por defecto, o bash);
  • politica de sudo: nopasswd (recomendada en WSL, por defecto) o password;
  • si hacer que ese usuario sea el de las nuevas sesiones de WSL (recomendado, por defecto si).

Puedes saltarte las preguntas pasando los valores directamente. Cualquier opcion de sistema se reenvia a la fase de sistema:

sudo ./install.sh --locale es_ES.UTF-8 --keymap es \
    --timezone Europe/Madrid --user dev --shell zsh --sudo nopasswd

Tambien se puede hacer sin argumentos mediante variables de entorno:

export X_LOCALE=de_DE.UTF-8 X_KEYMAP=de X_TIMEZONE=Europe/Berlin \
       X_USER=dev X_SUDO=nopasswd
sudo ./install.sh

Para saltar la instalacion de herramientas base (sudo git curl wget, mas el shell de login si no esta), usa --no-install o X_INSTALL=0. Para seguir entrando como root en vez de fijar el usuario nuevo, usa X_SET_DEFAULT_USER=0.

La fase solo aplica las acciones pedidas; con X_DRY=1 no se aplica nada y con X_AUTO=1 se usan los valores por defecto sin preguntar.

Relanzar

Cuando termina la fase de sistema, sal de la sesion y relanza la distribucion para que WSL aplique el /etc/wsl.conf actualizado:

wsl --terminate <distro>
wsl -d <distro>

Si se fijo el usuario por defecto (lo habitual), la nueva sesion se abre con ese usuario. Si no, lanzala explicitamente: wsl -d <distro> -u <usuario>.

Parte 2 - Usuario

Ya con el usuario creado, ejecuta el instalador otra vez desde el mismo checkout:

cd /opt/x-wsl-scripts
./install.sh

Ejecutarlo con sudo tambien funciona y apunta a SUDO_USER:

sudo ./install.sh

La fase de usuario exporta el entorno desde ~/.profile y ~/.bashrc (~/.zprofile y ~/.zshrc si el shell de login es zsh), crea ~/.local/bin, ~/.config/x y ~/Projects, y muestra los siguientes pasos.

Referencia de opciones (fase de sistema)

OpcionEnvPor defectoValores
--localeX_LOCALEen_US.UTF-8cualquier locale, p.ej. es_ES.UTF-8
--keymapX_KEYMAPusmapa de consola
--timezoneX_TIMEZONEwindows-timewindows-time, UTC, zona IANA
--userX_USERSUDO_USER/xnombre de usuario
--shellX_SHELLzshzsh, bash o una ruta
--sudoX_SUDOnopasswdnopasswd, password
--no-installX_INSTALL=0instalar-
-X_SET_DEFAULT_USER11 (fijar usuario), 0 (root)

Banderas de automatizacion

  • X_AUTO=1 - usa los valores por defecto sin preguntar (requiere no tty).
  • X_DRY=1 - imprime el plan sin aplicar nada.

Ver configuration.md para ver exactamente que cambia cada fase.

Editar esta página en GitHub