Ruby, iconv et FreeBSD sont dans un bateau
J’ai profité de la migration des sites sur le nouveau serveur pour passer Typosphere de Trac à Redmine. Trac est codé en Python et connaît en effet de très gros problèmes de performances dès que la table session contient plus d’une centaines d’entrées, Redmine est en Ruby, plus beau, et nettement plus agréable à utiliser. La question ne se posait donc pas.
Malheureusement, Ruby semble avoir un petit soucis avec la librairie Iconv lorsqu’on est sous FreeBSD, et la librairie nécessaire à son utilisation n’est pas compilée en même temps que le package. Un rake db:migrate nous donne alors un for déplaisant :
No such file to load -- iconv
Il va donc nous falloir compiler le support Iconv pour Ruby à la main. On va pour cela commencer par récupérer les sources de Ruby correspondant à la version installée localement :
neuro@7el.net:~$ cd /tmp neuro@7el.net:~$ ruby -v ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-freebsd7] neuro@7el.net:~$ wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6.tar.gz neuro@7el.net:~$ tar xvzf ruby-1.8.6.tar.gz neuro@7el.net:~$ cd ruby-1.8.6/ext/iconv neuro@7el.net:~$ ruby extconf.rb --with-iconv-dir=/usr/local neuro@7el.net:~$ make neuro@7el.net:~$ cp iconv.so /usr/local/lib/ruby/1.8/i386-freebsd7
Et voilà, c’est terminé, vous pouvez reprendre le cours de votre installation.