Un fork de la version 1.2.4 qui corrige ces problèmes est disponible ici: http://github.com/qoobaa/sqlite3-ruby.
Pour l'installer, clonez d'abord le repository avec git:
git clone git://github.com/qoobaa/sqlite3-ruby.git
puis allez dans le répertoire créé et construisez le gem:
cd sqlite3-ruby gem build sqlite3-ruby.gemspec
si tout fonctionne vous avez maintenant le gem sqlite3-ruby-1.2.6.gem. Installez-le:
gem install sqlite3-ruby-1.2.6.gem
C'est tout pour Linux, sous Windows cela se complique étant donné que le gem intègre une extension C qu'il faut linker avec SQLite. Vous devriez donc tomber sur l'erreur:
Building native extensions. This could take a while... ERROR: Error installing sqlite3-ruby: ERROR: Failed to build gem native extension.
ou si vous avec déjà installé le devkit:
checking for sqlite3.h... no
La suite nécessite d'avoir le devkit d'installé sur votre machine (voir http://rubyinstaller.org/download.html et http://wiki.github.com/oneclick/rubyinstaller/development-kit ).
Créez un répertoire qui contiendra les fichiers nécessaires à la compilation de l'extension, à savoir sqlite3.h (dans le sous-répertoire include) et sqlite3.dll (dans le sous-répertoire lib). Par exemple:
C:\Ruby19\sqlite3 |- include | |- sqlite3.h |- lib |- sqlite3.dll
Le fichier sqlite3.h se trouve dans les sources de SQLite: http://www.sqlite.org/sqlite-amalgamation-3_6_21.zip
Le fichier sqlite3.dll se trouve dans la distribution binaire pour Windows: http://www.sqlite.org/sqlitedll-3_6_22.zip
Modifiez ensuite la configuration de la compilation de l'extension pour inclure le répertoire créé. Ouvrez le fichier ext/sqlite3_api/extconf.rb des sources du gem et ajoutez la ligne suivante:
dir_config("sqlite3", "C:\\Ruby19\\sqlite3")
Vous pouvez maintenant regénérer le gem et l'installer:
gem build sqlite3-ruby.gemspec gem install sqlite3-ruby-1.2.6.gem
Excellent ce billet !
ReplyDeleteJ'ai des soucis d'encodage avec sqlite3 et ruby 1.9.1 et ce post m'a aider à trouver une solution à mon problème.
Seulement, je me pose une question : y a t-il un quelconque moyen de récupérer directement le gem buildé pour windows ?
Merci encore pour ce billet en tout cas.