GNU/Linux >> Tutoriales Linux >  >> Linux

Ruby on Rails en Windows no solo es posible, es fabuloso usando WSL2 y VS Code

He estado probando de forma intermitente para disfrutar del desarrollo de Ruby on Rails en Windows durante muchos años. Estaba haciendo Ruby en Windows desde hace 13 años. Ha habido muchos esfuerzos valientes para hacer que Rails en Windows sea una buena experiencia. Sin embargo, dado que Windows 10 puede ejecutar Linux con WSL (Subsistema de Windows para Linux) y ahora Windows ejecuta Linux a velocidades casi nativas con un kernel de Linux de envío real usando WSL2, la gente de Ruby on Rails que usa Windows debería hacer su trabajo en WSL2.

Ejecución de Ruby on Rails en Windows

Obtén un Windows 10 reciente

WSL2 se lanzará a finales de este año, pero por ahora puede obtenerlo fácilmente registrándose en Windows Insiders Fast y asegurándose de que su versión de Windows sea 18945 o superior. Simplemente ejecute "winver" para ver su número de compilación. Ejecute Windows Update y obtenga la última versión.

Habilitar WSL2

Querrá el subsistema de Windows más nuevo para Linux. Desde un indicador de administrador de PowerShell, ejecute esto:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

y diríjase a la tienda de Windows y busque "Linux" u obtenga Ubuntu 18.04 LTS directamente. Descárgalo, ejecútalo, crea tu usuario sudo.

Asegúrese de que su distribución esté funcionando a la máxima velocidad con WSL2. Ese indicador anterior de PowerShell ejecuta wsl --list -v para ver tus distribuciones y sus versiones de WSL.

C:\Users\Scott\Desktop> wsl --list -v
NAME STATE VERSION
* Ubuntu-18.04 Running 2
Ubuntu Stopped 1
WLinux Stopped 1

Puede actualizar cualquier distribución de WSL1 como esta y, una vez hecho, está listo.

wsl --set-version "Ubuntu-18.04" 2

Y sin duda siéntete libre de obtener fuentes y estilos geniales y hazte una agradable y brillante experiencia de Linux... tal vez con la Terminal de Windows.

Obtener la Terminal de Windows

Puntos de bonificación, obtenga la nueva Terminal de Windows de código abierto para una mejor experiencia en la línea de comandos. Instálelo DESPUÉS de haber configurado Ubuntu o Linux y se completará automáticamente su menú por usted. De lo contrario, edite su archivo profiles.json y cree un perfil con una línea de comando como esta:

"commandline" : "wsl.exe -d Ubuntu-18.04"

¿Ves cómo estoy llamando a wsl -d (para distribución) con el nombre corto de la distribución?

Ya que tengo un entorno Ubuntu real en Windows, solo puedo seguir estas instrucciones para configurar Rails.

Configurar Ruby on Rails

¡Las instrucciones de Ubuntu funcionan porque es Ubuntu! https://gorails.com/setup/ubuntu/18.04

Además, puedo instalar tantos Linux como quiera, incluso un entorno Dev vs. Prod si lo deseo. WSL2 es mucho más liviano que una máquina virtual completa.

Una vez que Rails esté configurado, intentaré crear un nuevo hola mundo:

rails new myapp

¡y aquí está el resultado!

También puedo ejecutar "explorer.exe". e inicie Windows Explorer y vea y administre mis archivos de Linux. Eso está permitido ahora en WSL2 porque está ejecutando un servidor Plan9 para acceder a archivos.

Instalar VS Code y el paquete de extensión remota de VS Code

Voy a instalar el paquete VSCode Remote Extension para poder desarrollar desde Windows en máquinas remotas O en WSL o Container directamente. Puedo hacer clic en la esquina del nivel inferior de VS Code o consultar la Paleta de comandos para ver esta lista de elementos del menú. Aquí puedo "Reabrir carpeta en WSL" y elegir la distribución que quiero usar.

Ahora que he abierto la carpeta para el desarrollo de WSL, mire de cerca la esquina inferior izquierda. Puede ver que estoy en un modo de desarrollo de WSL Y Visual Studio Code recomienda que instale una extensión de Ruby VS Code... ¡dentro de WSL! Ni siquiera tengo Ruby y Rails en Windows. Voy a tener los servidores de lenguaje Ruby y las partes headless de VS Code en vivo en WSL, en Linux, donde serán más útiles.

Esta sinergia, este equilibrio entre Windows (que disfruto) y Linux (cuya línea de comandos disfruto) ha resultado superproductivo. Puedo hacer todo el trabajo que quiero (Go, Rust, Python, .NET, Ruby) y moverme sin problemas entre entornos. No hay una separación clara como la que hay con la solución "ejecutarlo en una máquina virtual". Puedo acceder a mis archivos de Windows desde /mnt/c desde Linux, y siempre puedo acceder a mis archivos de Linux en \\wsl$ desde Windows.

Tenga en cuenta que estoy ejecutando el servidor de Rails -b=0.0.0.0 para vincular todas las direcciones IP disponibles, y esto hace que Rails esté disponible para "localhost" para que pueda acceder al sitio de Rails desde Windows. Es mi máquina, por lo que es mi host local (las complejidades de la red las maneja WSL2).

$ rails server -b=0.0.0.0
=> Booting Puma
=> Rails 6.0.0.rc2 application starting in development
=> Run `rails server --help` for more startup options
Puma starting in single mode...
* Version 3.12.1 (ruby 2.6.2-p47), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://0.0.0.0:3000
Use Ctrl-C to stop

Aquí está en el nuevo Edge (cromo). Esto es Ruby on Rails ejecutándose en WSL, como se navega desde Windows, utilizando el nuevo Edge con Chromium en su centro. Gatos y perros, convivencia, histeria colectiva.

Aún mejor, puedo instalar la gema ruby-debug-ide dentro de WSL y ahora estoy haciendo una depuración interactiva desde VS Code, pero nuevamente, tenga en cuenta que el "trabajo" está ocurriendo dentro de WSL.

¡Disfrútalo!

Patrocinador: Obtenga la versión más reciente de JetBrains Rider con WinForms Designer, Edit &Continue y un visor de IL (idioma intermedio). Se incluye compatibilidad preliminar con C# 8.0, refactorización de cambio de nombre para símbolos definidos por F# en toda la solución y temas personalizados.


Linux
  1. Interoperabilidad de Windows y Linux:una mirada a Samba

  2. Linux:¿por qué usamos Su y no solo Su?

  3. Ver la etiqueta de servicio DELL y el código de servicio rápido desde Linux y Windows

  4. ¿Es posible que el descriptor de archivo de Linux 0 1 2 no sea para stdin, stdout y stderr?

  5. VirtualBox en Linux:¿Qué imagen de Windows usar y dónde conseguirla?

Comparta archivos fácilmente entre Linux, Windows y Mac usando NitroShare

Arreglar Grub que no se muestra para el sistema de arranque dual de Windows y Linux

Un chico de Windows en un mundo Linux:VS Code y SSH remoto

Usar Tailscale en Windows para conectarse en red más fácilmente con WSL2 y Visual Studio Code

Depuración remota de una aplicación .NET Core Linux en WSL2 desde Visual Studio en Windows

Ruby on Rails en Azure App Service (sitios web) con Linux (y Ubuntu en Windows 10)