Microsoft WSL

El Subsistema de Windows para Linux (Windows Subsystem for Linux, ó WSL) incorporado en Windows 10 permite a los desarrolladores ejecutar un entorno de Linux directamente en Windows sin la sobrecarga de una máquina virtual convencional.

Hay dos versiones, pero se pueden alternar. Microsoft recomienda WSL 2 por sus características mejoradas. Pero es preferible WSL 1 si:

Habilitar WSL y configurar WSL 1

Según la guía de instalación, habilitar la nueva característica WSL desde una PowerShell como administrador:

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

Luego reiniciar el equipo y proceder con la instalación de una distribución Linux. Se recomienda Ubuntu.

Una vez instalado se ejecuta la shell de inicio:

Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: manuelcillero
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo ".
See "man sudo_root" for details.

Con esto se crea el usuario root y un usuario por defecto para acceder a la shell de Linux. Una vez dentro se pueden crear otros usuarios. Para empezar se recomienda actualizar:

$ sudo apt update
$ sudo apt upgrade
$ sudo apt dist-upgrade
$ sudo apt autoremove

En /mnt/c se monta la estructura de carpetas del disco C:\. Y voilà, Linux funcionando en Windows.

El nuevo WSL 2

Verificar los requisitos para instalar WSL 2. Seguir la guía de instalación habilitando la característica Máquina Virtual desde una PowerShell como administrador:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Luego descargar un paquete de actualización del kernel de Linux para instalar.

Y finalmente usar alguno de los siguientes comandos para establecer la versión por defecto de WSL, la versión de cada distribución instalada, etc.

Comandos útiles

Desde la PowerShell del usuario se puede ejecutar:

  • wsl --set-default-version 2
    Establece WSL 2 como versión predeterminada al instalar una nueva distribución de Linux.
  • wsl --list --verbose
    Muestra las distribuciones de Linux instaladas y su versión WSL. Y también las instancias docker-compose de Docker, porque Docker Desktop para Windows se integra perfectamente con WSL 2. Se inicia y ejecuta considerablemente más rápido y se habilita tanto en Windows como en Linux.
  • wsl --setdefault
    Cambia la distribución de Linux por defecto. Se verá con un * al ejecutar wsl --list.
  • wsl --set-version Ubuntu 2
    Cambia la distribución Ubuntu a la versión 2 de WSL. Se puede regresar a la 1 cambiando el valor final.
  • wsl --user
    Ejecuta la distribución por defecto con un usuario específico creado previamente.
  • wsl --export Ubuntu directorio\de\archivo.tar
    Detiene la ejecución de la distribución Ubuntu y exporta todo su contenido al archivo.tar indicado.
  • wsl --import UbuntuImportado directorio\de\instalación directorio\de\archivo.tar
    Crea una nueva distribución en el directorio indicado de un archivo.tar exportado previamente.
  • wsl --install
    Configura WSL e instala Ubuntu de una tacada. Con wsl --install -d Debian se instalaría Debian.

Cygwin

Si no es posible usar WSL en el equipo, una buena opción es instalar Cygwin. Consiste en una colección de herramientas, shells y comandos habituales en sistemas Unix para usar desde Microsoft Windows.

Instalación

El procedimiento de instalación es sencillo:

  • Descargar el instalador setup-x86_64.exe.
  • Ejecutar como administrador y seguir las indicaciones; por ejemplo desde internet (https://mirrors.kernel.org), para todos los usuarios, en el directorio por defecto C:\cygwin64.
  • Al acabar se puede mover el instalador a esta carpeta porque se usará para añadir o eliminar paquetes del propio Cygwin.

Directorio de inicio del usuario

Para hacer que el directorio de inicio del usuario sea su propia carpeta de Windows ejecutar como administrador el terminal de Cygwin64 y editar el archivo /etc/nsswitch.conf para incluir esta línea:

db_home: windows

Guardar el archivo. Cerrar todos los terminales de Cygwin64. Puede ser necesario ejecutar un nuevo terminal para copiar los archivos de configuración del directorio original a la carpeta de Windows:

$ cp -p '/home/{Carpeta Usuario}/.*' ~/

Chocolatey

Chocolatey es un gestor de paquetes que facilita la instalación y la gestión del software que desarrolladores, administradores y usuarios requieren en sus equipos Windows.

Instalación

La instalación de Chocolatey se hace desde la PowerShell de Windows como administrador, ejecutar:

Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

y comprobar la instalación:

> choco
Chocolatey v0.10.15
Please run 'choco -?' or 'choco  -?' for help menu.

Paquetes disponibles

En la página de búsqueda puede consultarse el listado de paquetes mantenido por la comunidad.

Comandos habituales

Los comandos también se ejecutan desde la PowerShell, como administrador. Los más comunes son:

Instalar un paquete (install)

choco install 7zip
choco install notepadplusplus googlechrome 7zip

Puede usarse cinst como atajo de choco install. Las opciones se aplicarían a todos los ítems.

Ver paquetes instalados (list)

choco list -l

Puede usarse clist como atajo de choco list. Con otras opciones de interés como -li ó -lia.

Comprobar paquetes (outdated)

choco outdated

Devuelve los paquetes con versiones más recientes. Normalmente se usará sin opciones.

Actualizar paquetes (upgrade)

choco upgrade chocolatey
choco upgrade notepadplusplus googlechrome 7zip

Puede usarse cup como atajo de choco upgrade. Las opciones se aplicarían a todos los ítems.

Desinstalar un paquete (uninstall)

choco uninstall 7zip
choco uninstall notepadplusplus googlechrome 7zip

Puede usarse cuninst como atajo de choco uninstall. Las opciones se aplicarían a todos los ítems.

Última revisión: 11/12/2020

0 comentarios

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *