Logo Ruby

Installer Ruby depuis les sources

Ruby


Ruby est un langage de programmation que je ne connaissais que de nom jusqu’au jour où je me suis installé mon serveur Gitlab. Alors pourquoi parler de ce langage ? Tout d’abord car ce langage est utilisé dans de grands projets, GitHub en est un exemple mais on peut aussi compter sur Redmine, Puppet, Basecamp et pleins d’autres. C’est aussi un langage de programmation interprété et orienté objet tout comme le Python. Ruby est principalement tourné vers la conception d’application Web notamment par son framework Ruby on Rails, alias RoR. Dans cet article, je vous parlerais de comment installer Ruby depuis les sources, cela vous permettra de contrôler la version installée et d’être à jour des stables.

Installation de Ruby 2.2.1

Pour commencer, nous allons nous créer un petit espace, télécharger les sources et les décompresser. Pour cela, rendez vous sur le site officiel en Français de Ruby et chercher le lien de téléchargement des sources.

$ mkdir /tmp/ruby
$ cd /tmp/ruby
$ wget http://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.1.tar.gz
$ tar xzvf ruby-2.2.1.tar.gz

Maintenant nous allons configurer l’environnement via le script configure. Sur un serveur de production, vous pouvez mettre l’option --disable-install-doc afin de ne pas installer la documentation Ruby qui est inutile sur un serveur de production.

$ cd ruby-2.2.1
$ ./configure
$ ./configure --disable-install-doc  # Serveur de production
$ make

Si votre système est vierge de toute installation, il est possible que vous ayez l’erreur suivante suite au make :

$ make
...
linking shared-object fiddle.so
/usr/bin/ld: ./libffi-3.2.1/.libs/libffi.a(raw_api.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
./libffi-3.2.1/.libs/libffi.a: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
make[2]: *** [../../.ext/x86_64-linux/fiddle.so] Erreur 1
make[2]: quittant le répertoire « /tmp/ruby/ruby-2.2.1/ext/fiddle »
make[1]: *** [ext/fiddle/all] Erreur 2
make[1]: quittant le répertoire « /tmp/ruby/ruby-2.2.1 »
make: *** [build-ext] Erreur 2

Pour régler cette erreur, vous devrez installer le paquet libffi-dev puis nettoyer l’environnement de configuration.

# apt-get install libffi-dev
$ make clean
$ ./configure
$ make

La dernière étape de l’installation est justement l’installation des binaires au sein de votre distribution. Cette dernière commande vous permettra d’avoir ruby d’installer sur votre ordinateur.

# make install

Il est possible que vous ayez cette erreur si la correction du bug 10945 n’a pas été appliquée sur la version 2.2.1 téléchargeable.

./tool/rbinstall.rb:714:in `rescue in block in <main>': uninitialized constant LoadErroe (NameError)
    from ./tool/rbinstall.rb:712:in `block in <main>'
    from ./tool/rbinstall.rb:757:in `call'
    from ./tool/rbinstall.rb:757:in `block in <main>'
    from ./tool/rbinstall.rb:754:in `each'
    from ./tool/rbinstall.rb:754:in `<main>'
make: *** [do-install-nodoc] Erreur 1

La commande sed suivante vous corrigera le script d’installation posant problème. Vous n’aurez plus alors qu’à relancer la commande d’installation.

$ sed -e s'/LoadErroe/LoadError/g' ./tool/rbinstall.rb > ./tool/rbinstall.rb
# make install

Ruby est maintenant installé sur votre système. Vous pouvez dès à présent utiliser gem pour installer les bibliothèques que vous désirez ou encore exécuter la console interactive irb.

$ irb 
irb(main):001:0> puts "Hello World!"    
Hello World!
=> nil
irb(main):002:0> 

Commentaires

  • ruby rails ninja

    article très sympa
    je pense également qu’il faut utiliser ruby et rails sous linux sous peine d’être limité (c’est pour ca que j’ai abandonné microsoft totalement en 2012 !

    cheers !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.