GNU/Linux >> Tutoriels Linux >  >> Linux

Ruby on Rails sur Windows n'est pas seulement possible, c'est fabuleux en utilisant WSL2 et VS Code

J'ai essayé par intermittence d'apprécier le développement de Ruby on Rails sur Windows pendant de nombreuses années. Je faisais Ruby sur Windows il y a 13 ans. Il y a eu de nombreux efforts vaillants pour faire de Rails on Windows une bonne expérience. Cependant, étant donné que Windows 10 peut exécuter Linux avec WSL (Windows Subsystem for Linux) et maintenant, Windows exécute Linux à des vitesses quasi natives avec un noyau Linux réel utilisant WSL2, les utilisateurs de Ruby on Rails utilisant Windows devraient faire leur travail dans WSL2.

Exécuter Ruby on Rails sous Windows

Obtenir une version récente de Windows 10

WSL2 sera publié plus tard cette année, mais pour l'instant, vous pouvez facilement l'obtenir en vous inscrivant à Windows Insiders Fast et en vous assurant que votre version de Windows est 18945 ou supérieure. Exécutez simplement "winver" pour voir votre numéro de build. Exécutez Windows Update et obtenez la dernière version.

Activer WSL2

Vous aurez besoin du dernier sous-système Windows pour Linux. À partir d'une invite d'administration PowerShell, exécutez ceci :

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

et rendez-vous sur le Windows Store et recherchez "Linux" ou obtenez directement Ubuntu 18.04 LTS. Téléchargez-le, exécutez-le, créez votre utilisateur sudo.

Assurez-vous que votre distribution fonctionne à vitesse maximale avec WSL2. Cette invite PowerShell précédente exécute wsl --list -v pour voir vos distributions et leurs versions WSL.

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

Vous pouvez mettre à niveau n'importe quelle distribution WSL1 comme celle-ci, et une fois que c'est fait, c'est fait.

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

Et n'hésitez pas à obtenir des polices et des styles sympas et à vous faire une belle expérience Linux brillante... peut-être avec le terminal Windows.

Obtenez le terminal Windows

Points bonus, obtenez le nouveau terminal Windows open source pour une meilleure expérience en ligne de commande. Installez-le APRÈS avoir configuré Ubuntu ou Linux et il remplira automatiquement son menu pour vous. Sinon, modifiez votre profiles.json et créez un profil avec une ligne de commande comme celle-ci :

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

Voyez comment j'appelle wsl -d (pour la distribution) avec le nom court de la distribution ?

Comme j'ai un véritable environnement Ubuntu sous Windows, je peux simplement suivre ces instructions pour configurer Rails !

Configurer Ruby on Rails

Les instructions d'Ubuntu fonctionnent parce que c'est Ubuntu ! https://gorails.com/setup/ubuntu/18.04

De plus, je peux installer autant de Linux que je veux, même un environnement Dev vs Prod si je le souhaite. WSL2 est beaucoup plus léger qu'une machine virtuelle complète.

Une fois Rails configuré, j'essaierai de créer un nouveau hello world :

rails new myapp

et voici le résultat !

Je peux aussi exécuter "explorer.exe". et lancer l'Explorateur Windows et voir et gérer mes fichiers Linux. C'est maintenant autorisé dans WSL2 car il exécute un serveur Plan9 pour l'accès aux fichiers.

Installer VS Code et le pack d'extension à distance VS Code

Je vais installer le pack VSCode Remote Extension afin de pouvoir développer à partir de Windows sur des machines distantes OU directement dans WSL ou Container. Je peux cliquer sur le coin inférieur de VS Code ou consulter la palette de commandes pour cette liste d'éléments de menu. Ici, je peux "Rouvrir le dossier dans WSL" et choisir la distribution que je veux utiliser.

Maintenant que j'ai ouvert le dossier pour le développement WSL, regardez attentivement le coin inférieur gauche. Vous pouvez voir que je suis en mode de développement WSL ET que Visual Studio Code me recommande d'installer une extension Ruby VS Code... dans WSL ! Je n'ai même pas Ruby et Rails sous Windows. Je vais faire vivre les serveurs de langage Ruby et les parties sans tête de VS Code dans WSL - sous Linux - où ils seront les plus utiles.

Cette synergie, cet équilibre entre Windows (que j'apprécie) et Linux (dont j'apprécie la ligne de commande) s'est avéré super productif. Je suis capable de faire tout le travail que je veux - Go, Rust, Python, .NET, Ruby - et de passer facilement d'un environnement à l'autre. Il n'y a pas de séparation claire comme c'est le cas avec la solution "Exécutez-le dans une machine virtuelle". Je peux accéder à mes fichiers Windows depuis /mnt/c depuis Linux, et je peux toujours accéder à mes fichiers Linux sur \\wsl$ depuis Windows.

Notez que j'utilise rails server -b=0.0.0.0 pour lier toutes les adresses IP disponibles, ce qui rend Rails disponible pour "localhost" afin que je puisse accéder au site Rails depuis Windows ! C'est ma machine, donc c'est mon hôte local (les complexités du réseau sont gérées par 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

La voici en nouvelle Edge (chrome). Il s'agit donc de Ruby on Rails exécuté dans WSL, tel que consulté à partir de Windows, en utilisant le nouveau Edge avec Chromium en son cœur. Chats et chiens, vivre ensemble, hystérie de masse.

Encore mieux, je peux installer le gem ruby-debug-ide dans WSL et maintenant je fais un débogage interactif à partir de VS Code, mais encore une fois, notez que le "travail" se passe dans WSL.

Amusez-vous !

Parrain : Obtenez le dernier JetBrains Rider avec le concepteur WinForms, Edit &Continue et une visionneuse IL (Intermediate Language). La prise en charge préliminaire de C# 8.0, la refactorisation de renommage pour les symboles définis par F# dans l'ensemble de votre solution et les thèmes personnalisés sont tous inclus.


Linux
  1. Interopérabilité Windows et Linux :un regard sur Samba

  2. Linux - Pourquoi utilisons-nous Su - Et pas seulement Su ?

  3. Afficher le numéro de service DELL et le code de service express sous Linux et Windows

  4. Est-il possible que le descripteur de fichier Linux 0 1 2 ne soit pas pour stdin, stdout et stderr ?

  5. Quel système de fichiers utiliser lorsque vous utilisez à la fois Windows et Linux ?

Partagez facilement des fichiers entre Linux, Windows et Mac à l'aide de NitroShare

Correction de Grub ne s'affichant pas pour le système à double démarrage Windows et Linux

Un gars Windows dans un monde Linux :VS Code et SSH distant

Utilisation de Tailscale sur Windows pour réseauter plus facilement avec WSL2 et Visual Studio Code

Débogage à distance d'une application .NET Core Linux dans WSL2 à partir de Visual Studio sous Windows

Ruby on Rails sur Azure App Service (sites Web) avec Linux (et Ubuntu sur Windows 10)