Passage de ruby-1.8.5 à ruby-1.8.6

Alors que sur le poste où j’avais d’abord installé Mephisto/Sqlite3 je suis en Debian Lenny (version “testing” à ce jour), qui vient naturellement avec ruby-1.8.6. Alors que sur mon serveur, je suis en Debian Etch, et donc ruby-1.8.5. Voici donc les étapes de l’installation, reprises de en partie du site ange.librium.org

  1. Récupérer les tarballs de : ruby 1.8.6, rubygems, et ruby-zlib (indispensable pour ruby 1.8.6)
  2. Installer zlib1g-dev via “apt-get install” (ou aptitude, ou wajig…)
  3. Arrêtez les programmes utilisant ruby, à tout hasard mongrel
  4. Assurer vous de désinstaller ruby et rubygems (apt-get remove ruby rubygems). Vous pouvez également supprimer ri, rdoc, rspec, etc. si vous les avez installés via votre gestionnaire de paquets
  5. Installer Ruby 1.8.6 : tar -xvzf tarball ; cd ruby1.8.6 ; ./configure ; make ; make install
  6. Faites de même avec ruby-zlib : ruby extconf.rb
  7. Faites de même avec rubygems : ruby setup.rb all

Tout a fonctionné assez bien jusqu’à ce que je redémarre mon mongrel. Patatra, il cherche /usr/bin/ruby1.8 qui n’existe plus.
Les gem sont installés avec mes anciens paths, pas top pour avoir quelque chose de propre. Donc :

  1. cd /usr/lib/ruby/gems/1.8/gems/ ; ls > ../tmp.txt ; rm -rf *
  2. Puis réinstallation de mes gems favorites : gem install rails mongrel rake rcov rspec ruby-debug sqlite3-ruby tzinfo
  3. Oups, ne fonctionne pas pour sqlite3 (qui fonctionnait avec le paquet sqlite3-ruby) il me dit qu’il lui manque “ruby.h” dès le premier check (raté)
  4. Donc direction le nouveau répertoire gems : cd /usr/local/lib/ruby/gems/1.8/gems/ ; cd sqlite3-ruby-1.2.1/ext/sqlite3_api/
  5. 2e essai : ruby extconf.rb => même erreur, OK !
  6. Installation de libsqlite, “à tout hasard” ;-) : install libsqlite3-0 libsqlite3-dev
  7. ruby extconf.rb => OK
  8. On relance la “vraie” installation : gem install sqlite3-ruby

Enjoy ;-)