Auteur : Hervé Leclerc

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
    	add user hleclerc
    	
    
  2. Installer les paquets nécessaires
    	apt-get install -y build-essential git libreadline-dev
    	
    
    libreadline est importante pour rdoc, votre compilation échouera si non installée
  3. su avec l’utilisateur spécifié
    	su -l hleclerc
    	
    
  4. Télécharger rbenv
    	git clone https://github.com/rbenv/rbenv.git ~/.rbenv
    	
    
  5. Télécharger les plugins rbenv
    	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
    	
    
  6. Compiler l’utilitaire rbenv
    	cd ~/.rbenv && src/configure && make -C src
    	
    
  7. ajouter le chemin vers rbenv
    	echo "export PATH=$HOME/.rbenv/bin:$PATH" >> ~/.bash_profile
    	
    
  8. set completion > edit ~/.bash_profile add at the end of file:
    	eval "$(rbenv init -)"
    	
    
  9. exit from user and re-su to check all is ok
    	exit
    	su -l hleclerc
    	
    
    -l is important to simulate a login
  10. Vérifier rbenv (liste toutes les versions de Ruby disponibles)
    	rbenv install -l
    	
    
  11. Installer une version de Ruby
    	rbenv install 2.3.0
    	
    
    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
    	rbenv rehash
    	
    
  13. Lister les versions installées
    	rbenv versions
    	
    
  14. Définir la version locale
    	rbenv local 2.3.0
    	
    
    ou
  15. Défnir la version globale de Ruby
    	rbenv global 2.3.0
    	
    
  16. Utiliser une version spécifique de Ruby (rbenv-use plugin)
    	ruby use 2.3.0
    	
    
  17. Montrer la version de Ruby
    	ruby -v
    	
    
  18. Montrer la version de la gem
    	gem -v
    	
    
    	which gem
    	
    
  19. Écrire un simple serveur web en Ruby create a file myserver.rb with this code:
    	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
    	
    
  20. Tester votre serveur
    	# ruby myserver.rb
    	
    

Essayer ensuite d’ouvrir dans votre navigateur

 http://localhost:2345/bashonwindows

Vous devriez voir GET /anything HTTP/1.1 dans le shell et Hello World dans le navigateur.

Joyeux codage Ruby !