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.