GNU/Linux >> Linux Esercitazione >  >> Linux

Ruby on Rails su Windows non è solo possibile, è favoloso usando WSL2 e VS Code

Sono molti anni che provo a godermi lo sviluppo di Ruby on Rails su Windows. Stavo facendo Ruby su Windows 13 anni fa. Ci sono stati molti coraggiosi sforzi per rendere Rails on Windows una buona esperienza. Tuttavia, dato che Windows 10 può eseguire Linux con WSL (sottosistema Windows per Linux) e ora Windows esegue Linux a velocità quasi native con un kernel Linux di spedizione effettivo che utilizza WSL2, le persone di Ruby on Rails che utilizzano Windows dovrebbero fare il loro lavoro in WSL2.

Eseguire Ruby on Rails su Windows

Procurati un Windows 10 recente

WSL2 verrà rilasciato entro la fine dell'anno, ma per ora puoi ottenerlo facilmente iscrivendoti a Windows Insiders Fast e assicurandoti che la tua versione di Windows sia 18945 o successiva. Esegui semplicemente "winver" per vedere il tuo numero di build. Esegui Windows Update e ottieni l'ultima versione.

Abilita WSL2

Avrai bisogno del nuovissimo sottosistema Windows per Linux. Da un prompt dell'amministratore di PowerShell esegui questo:

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

e vai su Windows Store e cerca "Linux" o ottieni direttamente Ubuntu 18.04 LTS. Scaricalo, eseguilo, rendi il tuo utente sudo.

Assicurati che la tua distribuzione funzioni alla massima velocità con WSL2. Quel precedente prompt di PowerShell esegui wsl --list -v per vedere le tue distribuzioni e le loro versioni WSL.

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

Puoi aggiornare qualsiasi distribuzione WSL1 in questo modo e, una volta terminato, è fatto.

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

E sicuramente sentiti libero di ottenere font e stili fantastici e regalarti una bella esperienza Linux brillante... magari con il Terminale di Windows.

Ottieni il terminale di Windows

Punti bonus, ottieni il nuovo terminale Windows open source per una migliore esperienza dalla riga di comando. Installalo DOPO aver configurato Ubuntu o Linux e compilerà automaticamente il suo menu per te. Altrimenti, modifica il tuo profiles.json e crea un profilo con una riga di comando come questa:

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

Vedi come chiamo wsl -d (per distro) con il nome breve della distribuzione?

Dato che ho un vero ambiente Ubuntu su Windows, posso semplicemente seguire queste istruzioni per configurare Rails!

Configura Ruby on Rails

Le istruzioni di Ubuntu funzionano perché è Ubuntu! https://gorails.com/setup/ubuntu/18.04

Inoltre, posso installare tutti i Linux che voglio, anche un ambiente Dev vs. Prod, se lo desidero. WSL2 è molto più leggero di una macchina virtuale completa.

Una volta impostato Rails, proverò a creare un nuovo mondo di ciao:

rails new myapp

ed ecco il risultato!

Posso anche eseguire "explorer.exe". e avvia Windows Explorer e visualizza e gestisci i miei file Linux. Ora è consentito in WSL2 perché esegue un server Plan9 per l'accesso ai file.

Installa VS Code e il VS Code Remote Extension Pack

Installerò il pacchetto VSCode Remote Extension in modo da poter sviluppare da Windows su macchine remote OPPURE direttamente in WSL o Container. Posso fare clic sull'angolo di livello inferiore di VS Code o controllare la tavolozza dei comandi per questo elenco di voci di menu. Qui posso "Riaprire la cartella in WSL" e scegliere la distribuzione che voglio usare.

Ora che ho aperto la cartella per lo sviluppo, WSL guarda da vicino nell'angolo in basso a sinistra. Puoi vedere che sono in una modalità di sviluppo WSL E Visual Studio Code mi consiglia di installare un'estensione Ruby VS Code... all'interno di WSL! Non ho nemmeno Ruby e Rails su Windows. Farò in modo che i server del linguaggio Ruby e le parti headless di VS Code risiedano in WSL - in Linux - dove saranno i più utili.

Questa sinergia, questo equilibrio tra Windows (che mi piace) e Linux (la cui riga di comando mi piace) si è rivelato super produttivo. Sono in grado di fare tutto il lavoro che voglio - Go, Rust, Python, .NET, Ruby - e di muovermi senza problemi tra gli ambienti. Non c'è una chiara separazione come c'è con la soluzione "esegui in una macchina virtuale". Posso accedere ai miei file Windows da /mnt/c da Linux e posso sempre accedere ai miei file Linux da \\wsl$ da Windows.

Nota che sto eseguendo rails server -b=0.0.0.0 per eseguire il binding su tutti gli IP disponibili e questo rende Rails disponibile per "localhost" in modo da poter accedere al sito Rails da Windows! È la mia macchina, quindi è il mio localhost (le complessità di rete sono gestite da 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

Eccolo nel nuovo Edge (cromo). Quindi questo è Ruby on Rails in esecuzione in WSL, navigato da Windows, utilizzando il nuovo Edge con Chromium al centro. Cani e gatti, convivenza, isteria di massa.

Ancora meglio, posso installare la gemma ruby-debug-ide all'interno di WSL e ora sto eseguendo il debug interattivo da VS Code, ma ancora una volta, nota che il "lavoro" sta accadendo all'interno di WSL.

Divertiti!

Sponsor: Ottieni l'ultimo JetBrains Rider con WinForms designer, Modifica e continua e un visualizzatore IL (Lingua Intermedia). Sono inclusi il supporto preliminare di C# 8.0, il refactoring di ridenominazione per i simboli definiti da F# nell'intera soluzione e i temi personalizzati.


Linux
  1. Interoperabilità Windows e Linux:uno sguardo a Samba

  2. Linux – Perché usiamo Su – e non solo Su?

  3. È possibile che il descrittore di file linux 0 1 2 non sia per stdin, stdout e stderr?

  4. Quale filesystem usare quando si usano sia Windows che Linux?

  5. VirtualBox su Linux:quale immagine di Windows utilizzare e dove trovarla?

Condividi facilmente i file tra Linux, Windows e Mac utilizzando NitroShare

Risolto il problema con Grub che non veniva visualizzato per il sistema di avvio doppio di Windows e Linux

Un ragazzo Windows in un mondo Linux:VS Code e SSH remoto

Utilizzo di Tailscale su Windows per una rete più semplice con WSL2 e Visual Studio Code

Debug remoto di un'app Linux .NET Core in WSL2 da Visual Studio in Windows

Ruby on Rails sul servizio app di Azure (siti Web) con Linux (e Ubuntu su Windows 10)