Vous pouvez avoir un environnement complet de développement Ruby virtualisé sur Windows 10 Linux Subsystem (WSL).
Ci-dessous le mode d'emploi en 20 étapes simples :
- Ajouter un utilisateur, votre installation ne se fera que pour cet utilisateur à un niveau système {{< highlight bash >}} add user hleclerc {{< /highlight >}}
- Installer les paquets nécessaires {{< highlight bash >}} apt-get install -y build-essential git libreadline-dev {{< /highlight >}} libreadline est importante pour rdoc, votre compilation échouera si non installée
- su avec l'utilisateur spécifié {{< highlight bash >}} su -l hleclerc {{< /highlight >}}
- Télécharger rbenv {{< highlight bash >}} git clone https://github.com/rbenv/rbenv.git ~/.rbenv {{< /highlight >}}
- Télécharger les plugins rbenv {{< highlight bash >}} git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build #git clone https://github.com/rkh/rbenv-whatis.git ~/.rbenv/plugins/rbenv-whatis git clone https://github.com/rkh/rbenv-use.git ~/.rbenv/plugins/rbenv-use {{< /highlight >}}
- Compiler l'utilitaire rbenv {{< highlight bash >}} cd ~/.rbenv && src/configure && make -C src {{< /highlight >}}
- ajouter le chemin vers rbenv {{< highlight bash >}} echo "export PATH=$HOME/.rbenv/bin:$PATH" >> ~/.bash_profile {{< /highlight >}}
- set completion > edit ~/.bash_profile add at the end of file: {{< highlight bash >}} eval "$(rbenv init -)" {{< /highlight >}}
- exit from user and re-su to check all is ok {{< highlight bash >}} exit su -l hleclerc {{< /highlight >}} -l is important to simulate a login
- Vérifier rbenv (liste toutes les versions de Ruby disponibles) {{< highlight bash >}} rbenv install -l {{< /highlight >}}
- Installer une version de Ruby {{< highlight bash >}} rbenv install 2.3.0 {{< /highlight >}} Ce qui prendra un moment... Vous pouvez vérifier les straces dans : /tmp/ruby-build.xx.log Où xxx est un horodatage. C'est ici qu'il faudra chercher les erreurs en cas d'échec.
- Installer les shims après l'installation d'une version {{< highlight bash >}} rbenv rehash {{< /highlight >}}
- Lister les versions installées {{< highlight bash >}} rbenv versions {{< /highlight >}}
- Définir la version locale {{< highlight bash >}} rbenv local 2.3.0 {{< /highlight >}} ou
- Défnir la version globale de Ruby {{< highlight bash >}} rbenv global 2.3.0 {{< /highlight >}}
- Utiliser une version spécifique de Ruby (rbenv-use plugin) {{< highlight bash >}} ruby use 2.3.0 {{< /highlight >}}
- Montrer la version de Ruby {{< highlight bash >}} ruby -v {{< /highlight >}}
- Montrer la version de la gem {{< highlight bash >}} gem -v {{< /highlight >}} {{< highlight bash >}} which gem {{< /highlight >}}
-
Écrire un simple serveur web en Ruby create a file myserver.rb with this code: {{< highlight ruby >}} require 'socket' # Provides TCPServer and TCPSocket classes
Initialize a TCPServer object that will listen
on localhost:2345 for incoming connections.
server = TCPServer.new('localhost', 2345)
loop infinitely, processing one incoming
connection at a time.
loop do
Wait until a client connects, then return a TCPSocket
# that can be used in a similar fashion to other Ruby # I/O objects. (In fact, TCPSocket is a subclass of IO.) socket = server.accept
Read the first line of the request (the Request-Line)
request = socket.gets
Log the request to the console for debugging
STDERR.puts request
response = "Hello World!\n"
We need to include the Content-Type and Content-Length headers
# to let the client know the size and type of data # contained in the response. Note that HTTP is whitespace # sensitive, and expects each header line to end with CRLF (i.e. "\r\n") socket.print "HTTP/1.1 200 OK\r\n" + "Content-Type: text/plain\r\n" + "Content-Length: #{response.bytesize}\r\n" + "Connection: close\r\n"
Print a blank line to separate the header from the response body,
# as required by the protocol. socket.print "\r\n"
Print the actual response body, which is just "Hello World!\n"
socket.print response
Close the socket, terminating the connection
socket.close end {{< /highlight >}} 20. Tester votre serveur {{< highlight bash >}}
ruby myserver.rb
{{< /highlight >}}
Essayer ensuite d'ouvrir dans votre navigateur {{< highlight html >}} http://localhost:2345/bashonwindows {{< /highlight >}}
Vous devriez voir GET /anything HTTP/1.1 dans le shell et Hello World dans le navigateur.
Joyeux codage Ruby !
Découvrez les derniers articles d'alter way
- : Prowler : L'outil de sécurité multi-cloud indispensable pour renforcer votre infrastructure
- : Kubernetes : plateforme "star" de l'IT et levier d'innovation des entreprises
- AI_dev2024
- : DirectPV : Avoir du stockage bloc distribué facilement dans kubernetes
- : Simple comme GitOps : kluctl
- Conférence Wax 2024 @thecamp