Installation rbenv sur Windows 10 - fr

Winoows 10 banner

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 :

  1. Ajouter un utilisateur, votre installation ne se fera que pour cet utilisateur à un niveau système {{< highlight bash >}} add user hleclerc {{< /highlight >}}
  2. 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
  3. su avec l'utilisateur spécifié {{< highlight bash >}} su -l hleclerc {{< /highlight >}}
  4. Télécharger rbenv {{< highlight bash >}} git clone https://github.com/rbenv/rbenv.git ~/.rbenv {{< /highlight >}}
  5. 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 >}}
  6. Compiler l'utilitaire rbenv {{< highlight bash >}} cd ~/.rbenv && src/configure && make -C src {{< /highlight >}}
  7. ajouter le chemin vers rbenv {{< highlight bash >}} echo "export PATH=$HOME/.rbenv/bin:$PATH" >> ~/.bash_profile {{< /highlight >}}
  8. set completion > edit ~/.bash_profile add at the end of file: {{< highlight bash >}} eval "$(rbenv init -)" {{< /highlight >}}
  9. 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
  10. Vérifier rbenv (liste toutes les versions de Ruby disponibles) {{< highlight bash >}} rbenv install -l {{< /highlight >}}
  11. 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.
  12. Installer les shims après l'installation d'une version {{< highlight bash >}} rbenv rehash {{< /highlight >}}
  13. Lister les versions installées {{< highlight bash >}} rbenv versions {{< /highlight >}}
  14. Définir la version locale {{< highlight bash >}} rbenv local 2.3.0 {{< /highlight >}} ou
  15. Défnir la version globale de Ruby {{< highlight bash >}} rbenv global 2.3.0 {{< /highlight >}}
  16. Utiliser une version spécifique de Ruby (rbenv-use plugin) {{< highlight bash >}} ruby use 2.3.0 {{< /highlight >}}
  17. Montrer la version de Ruby {{< highlight bash >}} ruby -v {{< /highlight >}}
  18. Montrer la version de la gem {{< highlight bash >}} gem -v {{< /highlight >}} {{< highlight bash >}} which gem {{< /highlight >}}
  19. É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 technologies d'alter way