miércoles, 3 de agosto de 2016

Ya llegó el bash en Ubuntu en Windows 10

El dos de Agosto se lanzó la actualización de aniversario de Windows 10, entre sus novedades para los desarrolladores destaca una: El bash en Ubuntu en Windows.

DevelopersMode
Aunque a día de hoy la herramienta está en beta es muy fácil de instalar. Lo primero que necesitas es un Windows con la actualización de aniversario. Si no la tienes ejecuta manualmente el Windows update para descargar e instalar la actualización

Necesitamos tener habilitado el modo desarrollador, esto se hace en Inicio-> Configuración-> Actualización y seguridad-> Para programadores y seleccionamos el Modo Programador si no lo tenemos seleccionado ya.

Para hacer la instalación del bash comenzamos instalando una nueva característica de Windows en Inicio-> Panel de Control –> Programas –> Programas y Características-> Activar y desactivar las características de Windows Desde esa ventana hacemos scroll para encontrar y marcar la opción Subsistema de Windows para Linux (beta) Puede que nos pida reiniciar la máquina para terminar la instalación. Este subsistema permite la ejecución de binarios de Linux ELF64 en Windows.
Subsistema de windows para linux

Una vez instalado solo tenemos que abrir una consola de Powershell y escribir Bash, de esta manera se descargará los paquetes necesarios para ejecutar bash y te pedirá un usuario y password para el bash.

Una vez listo esto ya tenemos listo todo para usar el bash en Ubuntu en Windows. Con esto el usuario tendrá una expriencia muy similar a la que tiene un usuario de consola en un Ubuntu  14.04, importante tener en cuenta la versión de ubuntu que se ejecuta para tener claro con qué software es compatible.
Ya que no estamos hablando de los comandos de bash en windows como podría ser Cygwin, estamos hablando de una experiencia ubuntu, con su gestor de paquetes, su estructura de dierectorios, y la posibilidad de ejecutar binarios directamente en el bash, si necesidad de una máquina virtual que esté por detrás.

¿Dónde se instala todo esto?

directorios
El ejecutable, el fichero bash.exe se instala en la carpeta System32 de Windows, pero el sistema de ficheros se instala dentro del perfil de usuario en \AppData\Local\lxss Esto significa dos cosas:

  • Un sistema de ficheros por cada usuario de Windows.
  • Que podemos acceder desde Windows al sistema de ficheros de Linux

Desde el bash también tenemos acceso al sistema de ficheros de Windows, las unidades de disco se montan automáticamente en la carpeta /mnt/ con su nombre, de tal manera que podemos acceder a los mismos ficheros, por ejemplo podemos acceder c:\Windows desde el bash:

lswindows

¿Para qué usar bash en Windows?

Este bash está pensado para que los desarrolladores que usan como SO Windows puedan acceder a las herramientas de Linux o a seguir los tutoriales de internet. ¿Cuantas veces he tenido que escuchar que la consola de Windows es una mierda? aunque no coincida con eso (sobre todo si hablamos de powershell) hay que reconocer que el ecosistema de Linux es mucho más rico que el de Windows y hay muchas más cosas para hacer o automatizar por consola que en la plataforma de Microsoft.
Con esta nueva consola tenemos el apt-get a nuestra disposición, con todo lo que significa, ya no hace falta usar putty para hacer ssh o podemos jugar con redis en nuestro entorno de desarrollo sin tener que montar una máquina virtual. Por ejemplo, yo pienso desinstalar mi máquina virtual de Linux para poder jugar con .net core en Ubuntu desde el bash.

Eso sí, aunque estemos en Windows no podemos ejecutar desde el bash un programa de Windows, de la misma manera que no podemos ejecutar un programa de Linux desde fuera del bash. Así que si quieres usar .Net Core desde el bash tienes que instalarlo, aunque ya lo tengas instalado en Windows.

En resumidas cuentas, ahora en Windows tenemos tres consolas, la de siempre (ms-dos), powershell y ahora bash. Que cada uno use lo que más le guste. Lo que no me queda claro si tanta variedad y alternativas resultará confuso para algunos. Yo estoy encantado.

Si tenéis curiosidad de cómo esta montado podéis comenzar por este artículo de Microsoft https://blogs.msdn.microsoft.com/wsl/2016/04/22/windows-subsystem-for-linux-overview/

Os dejo un enlace al video de presentación de hace unos meses en la Build 2016 donde Dustin Kirkland de Canonical y tres personas más de Microsoft presentan y revisan las características de bash en Windows

No hay comentarios:

Publicar un comentario