web-dev-qa-db-fra.com

Comment installer sqlite3 pour Ruby sous Windows?

Étant vraiment nouveau chez Ruby/Rails, et après avoir tenté de résoudre le problème moi-même ce week-end, je tente de demander conseil ici.

Une configuration complète Ruby/Apache/Passenger est effectuée sur FreeBSD et j'essaie d'accomplir la tâche consistant à utiliser Windows comme environnement de développement Ruby.

Jusque là:

  • Ruby est installé, v2.0.0p0 (2013-02-24) [x64-ming32]
  • Rails est installé, v.3.2.12
  • J'ai le kit de développement Ruby installé et enregistré.
  • La dll/exe sqlite3 est copiée dans le dossier Ruby "bin" (qui se trouve également sur mon chemin à l'aide de la console "Démarrer l'invite de commande avec Ruby").
  • Je peux démarrer un serveur Rails avec succès et poursuivre avec le http://guides.rubyonrails.org/getting_started.html tutorial to 3.3.
  • "> rake db: create" me dit:

    Installez l’adaptateur sqlite3: gem install activerecord-sqlite3-adapter ( Sqlite3 ne fait pas partie de la série. Ajoutez-le à Gemfile.)

que je n'ai pas "compréhension" de. Tenter d'installer activerecord-sqlite3-adapter me donne le message "Impossible de trouver un bijou valide ..." 

  • "> gem install sqlite3" renvoie:

    Building native extensions. This could take a while...ERROR: Error installing sqlite3:ERROR: Failed to build gem native extension.

    D:/Development/Ruby200-x64/bin/Ruby.exe extconf.rbchecking for sqlite3.h... *** extconf.rb failed ***

Pour l'instant, je suis bloqué au point où je ne sais même pas dans quel état se trouve mon installation de Ruby sous Windows. J'essaie de suivre le didacticiel principal de Rails et il ne spécifie aucun de ces problèmes sur Windows semble être une douleur naturelle pour beaucoup de gens.)

Qu'est-ce que je rate?!? J'essaie simplement d'installer sqlite3 pour Ruby sous Windows, cela semble simple, n'est-ce pas?

Si je fais ">rais db" le shell SQLite est présenté:

SQLite version 3.7.15.2 2013-01-09 11:53:05

Des questions similaires avec des étapes qui ne résolvent pas mon problème: Installation de SQLite 3.6 sous Windows 7

33
chrisp

Même si la question a été résolue, je souhaite publier mes recherches pour aider les autres. J'ai trouvé beaucoup d'informations en ligne, mais en tant que novice Ruby, j'ai eu du mal à tout suivre. La réponse de base provient du post suivant https://github.com/luislavena/sqlite3-Ruby/issues/82 avec les instructions de "paulwis" sur la bonne installation de sqlite3 pour Ruby 2.0.0-p0 commentaires sur https://github.com/Rails/rails/issues/10150 . Alors la voici:

  1. Installez Ruby Devkit pour votre configuration (DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe pour moi car j'utilise une machine x64)
  2. Téléchargez et extrayez le paquet autoconf de Sqlite.org
  3. Exécutez msys.bat (il se trouve dans le dossier racine de Ruby devkit)
  4. cd dans le chemin où vous avez téléchargé le code source sqlite (par exemple, "cd/c/dev/sqlite3" pour le chemin "c:\dev\sqlite3" si vous êtes nouveau dans MSYS/MINGW32)
  5. Exécuter "./configure"
  6. Exécuter "make"
  7. Exécuter "make install"
  8. Récupérez à nouveau la gem sqlite3, en spécifiant cette fois la plate-forme et le chemin d'accès aux fichiers binaires nouvellement compilés:

    gem install sqlite3 --platform=Ruby -- --with-sqlite3-include=[path\to\sqlite3.h] --with-sqlite3-lib=[path\to\sqlite3.o]
    

    Par exemple:

    gem install sqlite3 --platform=Ruby -- --with-sqlite3-include=/c:/dev/sqlite3/ --with-sqlite3-lib=/c:/dev/sqlite3/.libs/
    

    (d'après les chemins donnés à l'étape 4) 

  9. Vérifiez le fichier Gemfile.lock de votre application Rails et assurez-vous qu'il pointe vers la version correcte de sqlite3. Le mien était "sqlite3 (1.3.7-x86-mingw32)" et l'a manuellement changé en "sqlite3 (1.3.7-x64-mingw32)". Supprimer la plate-forme fonctionne également: "sqlite3 (1.3.7)".

J'espère que ça aide quelqu'un.

72
Williams

J'ai pu installer sqlite3 avec Ruby2.0.0 sur Win XP32 avec la commande suivante:

c:\>gem install sqlite3 --platform=Ruby -- --with-sqlite3-dir=C:/distr/sqlite --with-sqlite3-include=C:/distr/sqlite

Le dossier C:/distr/sqlite contient les fichiers suivants

  • Shell.c
  • sqlite3.c
  • sqlite3.h
  • sqlite3ext.h
  • sqlite3.def
  • sqlite3.dll

Donc, en gros, j'ai extrait sqlite-amalgamation-3071602.Zip et sqlite-dll-win32-x86-3071602.Zip en C:/distr/sqlite.

LA TÊTE HAUTE

Vous devez toujours mettre une copie de sqlite3.dll et sqlite3.def quelque part dans PATH. À mon humble avis, il est préférable de conserver les fichiers binaires sqlite3 dans le dossier bin de Ruby.

9
denis-bu
#!/usr/bin/env sh

mkdir c:/sqlite3x86
wget -P c:/sqlite3x86 http://packages.openknapsack.org/sqlite/sqlite-3.7.15.2-x86-windows.tar.lzma
cd c:/sqlite3x86
bsdtar --lzma -xf c:/sqlite3x86/sqlite-3.7.15.2-x86-windows.tar.lzma
gem install sqlite3 --platform=Ruby -- --with-opt-dir=c:/sqlite3x86
cd c:/
rm -rf c:/sqlite3x86
1
qkdreyer

Pour les fenêtres, rendez-vous à C:/Ruby25-x64/lib/Ruby/gems/2.5.0/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3.rb

et assurez-vous 

require "sqlite3" au lieu de natif

1
zawhtut

Le moyen le plus simple de configurer Ruby on Rails sur un ordinateur Windows consiste à utiliser RailsInstaller, qui installe et configure automatiquement sqlite3 pour vous. Un pas.

http://railsinstaller.org/en

0
regularmike

J'ai pensé que je mettrais une réponse - à partir des commentaires, pour l'amour de la postérité. Le problème semblait être que j'ai récupéré une nouvelle version de Ruby/Rails (pour Windows) qui n'était pas encore "compatible" avec SQLite3.

J'ai rétrogradé à 1.9.x et j'ai pu faire fonctionner les choses.

0
chrisp

Obtenez le gros binaire d'ici 

http://www.appveyor.com/project/MSP-Greg/sqlite3-Ruby/build/3/job/hhk6ie8gdo545svr/artifacts

et 

gem install c:\path\to\downloaded_gem.gem
0
Lyndon S