[TIP] WSL - Ubuntu 22.04 run bajo systemd (snap)

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • jmtella
    Administrator
    • Nov
    • 19902

    [TIP] WSL - Ubuntu 22.04 run bajo systemd (snap)

    NOTA: Ubuntu 22.04 LTS acaba de salir en la tienda. Por tanto, este TIP es válido actualmente (abril 2022) y posiblemente no sea necesario en el futuro ya que Ubuntu está dando ahora soporte experimental a arrancar bajo systemd en WSL 2.

    El motivo de escribir este TIP es que Ubuntu 22.04 realiza normalmente las Instalaciones bajo snap. Y snap no funciona si el sistema no está arrancado con systemd con PID 1. A la vista que no se podían instalar snaps, la unica consulta en google que actualmente existe y parece sensata es la siguiente (y no existe actualmente más información que está con lo cual me he vuelto loco para conseguir que funcionase:

    Bug #1962556 “[FFe] WSL systemd experimental support” : Bugs : wsl-setup package : Ubuntu (launchpad.net)

    Bien el truco está en ver que instala el paquete citado (que viene instalado por defecto en el Ubuntu 22.04). Es decir, ver que instala el paquete wsl-setup. Para ello, en Ubuntu si lanzamos:

    dpkg -L wsl-setup

    Y nos muestra:

    /.
    /usr
    /usr/libexec
    /usr/libexec/nslogin
    /usr/libexec/wsl-setup
    /usr/libexec/wsl-systemd
    /usr/share
    /usr/share/doc
    /usr/share/doc/wsl-setup
    /usr/share/doc/wsl-setup/changelog.gz
    /usr/share/doc/wsl-setup/copyright

    Tanto wsl-setup como wsl-systemd son scripts. Al intentar ejecutarlos da error por lo que parece que no nos sirve de nada. Pero el artículo anterior cita a los scripts y a wsl.conf, de refilón y sin especificar que hacer por lo que parece que nos vale para poco. Pero realizando pruebas, la manera de conseguirlo es:

    sudo nano /etc/wsl.conf

    Nos aparece vacío, lo que hacemos es incorporarle la entrada para que en boot ejecute uno de los scripts:

    Código:
    [boot]
    command = /usr/libexec/wsl-systemd
    Lo salvamos y nos salimos de Ubuntu. Cerramos desde una consola windows el wsl:

    wsl --shutdown

    Y volvemos a abrir el Ubuntu.

    Si ejecutamos ahora en el ubuntu:

    systemctl

    Vemos que se ejecuta correctamente, por lo cual el Ubuntu ha arrancado perfectamente bajo systemd. Los comandos snap ya funcionan. COn esto hemos terminado.

    Añado otro TIP:

    Si exportamos el ubuntu para realizar un clon de él importándolo de nuevo con otro nombre de distribución, la manera de arrancarlo debe ser un poco especial, ya que hay que arrancarlo con un acceso directo a:

    wsl.exe -u tu_usuario -d nombre_nueva_instancia /usr/libexec/nslogin
Trabajando...
X