webentwicklung-frage-antwort-db.com.de

Wie installiere ich sqlite3 für Ruby unter Windows?

Ich bin wirklich neu bei Ruby/Rails, und nachdem ich an diesem Wochenende versucht habe, das Problem selbst zu lösen, versuche ich, hier Rat zu suchen.

Ich habe ein komplettes Ruby/Apache/Passenger-Setup unter FreeBSD erstellt und versuche, Windows als Ruby-Entwicklungsumgebung zu verwenden.

Bisher:

  • Ruby ist installiert, v2.0.0p0 (2013-02-24) [x64-ming32]
  • Rails ist installiert, v.3.2.12
  • Ich habe das Ruby Dev Kit installiert und registriert.
  • Ich habe die sqlite3-dll/exe in den Ruby-Ordner "bin" kopiert (der sich auch in meinem Pfad befindet und die Konsole "Start-Eingabeaufforderung mit Ruby starten" verwendet.)
  • Ich kann einen Rails-Server erfolgreich starten und mit dem Tutorial http://guides.rubyonrails.org/getting_started.html / 3.3 fortfahren.
  • "> rake db: create" sagt mir:

    Bitte installieren Sie den sqlite3-Adapter: gem install activerecord-sqlite3-adapter ( Sqlite3 ist nicht Teil des Bundles. Fügen Sie ihn zu Gemfile hinzu.)

das ich kein "Verständnis" habe. Der Versuch, den Activerecord-sqlite3-Adapter zu installieren, gibt mir ein "Konnte keinen gültigen Edelstein finden ..." 

  • "> gem install sqlite3" gibt Folgendes zurück:

    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 ***

Im Moment stehe ich an einem Punkt fest, an dem ich nicht weiß, in welchem ​​Zustand sich meine Installation von Ruby unter Windows befindet. Ich versuche, das Haupt-Tutorial von Rails zu befolgen, und es gibt keine dieser Probleme an (wahrscheinlich wegen Ruby) unter Windows scheint für viele Menschen ein natürlicher Schmerz zu sein.)

Was vermisse ich?!? Ich versuche gerade, sqlite3 für Ruby unter Windows zu installieren.

Wenn ich ">rais db" mache, wird die SQLite-Shell dargestellt:

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

Ähnliche Fragen mit Schritten, die mein Problem nicht lösen: Installieren von SQLite 3.6 unter Windows 7

33
chrisp

Obwohl die Frage beantwortet wurde, möchte ich meine Forschung posten, um anderen zu helfen. Ich habe im Internet viele Informationen gefunden, aber als Ruby-Neuling hatte ich es schwer, alles zu verfolgen. Die grundlegende Antwort kommt aus dem folgenden Beitrag https://github.com/luislavena/sqlite3-Ruby/issues/82 mit Anweisungen von "paulwis" zur korrekten Installation von sqlite3 für Ruby 2.0.0-p0 und einige andere Kommentare zu https://github.com/Rails/rails/issues/10150 . Hier ist es also:

  1. Installieren Sie das Ruby Devkit für Ihr Setup (DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe für mich, da ich einen x64-Computer verwende).
  2. Laden Sie das Autoconf-Paket von Sqlite.org herunter und extrahieren Sie es
  3. Führen Sie msys.bat aus (es befindet sich im Ruby-Devkit-Stammverzeichnis).
  4. cd in den Pfad, in den Sie die sqlite-Quelle heruntergeladen haben (z. B. "cd/c/dev/sqlite3" für Pfad "c:\dev\sqlite3", wenn Sie noch nicht mit MSYS/MINGW32 vertraut sind)
  5. Führen Sie "./configure" aus.
  6. "Make" ausführen
  7. "Make install" ausführen
  8. Holen Sie sich den sqlite3-Edelstein erneut und geben Sie diesmal die Plattform und den Pfad zu den neu kompilierten Binärdateien an:

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

    Zum Beispiel:

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

    (von den in Schritt 4 angegebenen Pfaden) 

  9. Überprüfen Sie das Gemfile.lock Ihrer Rails-App und stellen Sie sicher, dass es auf die korrekte Version von sqlite3 verweist. Mein war "sqlite3 (1.3.7-x86-mingw32)" und änderte es manuell in "sqlite3 (1.3.7-x64-mingw32)". Das Entfernen der Plattform funktioniert auch: "sqlite3 (1.3.7)".

Hoffe das hilft jemandem.

72
Williams

Ich konnte sqlite3 mit Ruby2.0.0 unter Windows XP32 mit folgendem Befehl installieren:

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

Der Ordner C:/distr/sqlite enthält folgende Dateien

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

Im Grunde habe ich sqlite-amalgamation-3071602.Zip und sqlite-dll-win32-x86-3071602.Zip nach C:/distr/sqlite extrahiert.

KOPF HOCH

Sie müssen noch eine Kopie von sqlite3.dll und sqlite3.def irgendwo in PATH ablegen. IMHO ist es am besten, sqlite3-Binärdateien in Rubys Bin-Ordner aufzubewahren.

9
denis-bu

Dies ist ein alter Thread, aber immer noch relevant.

Für uns war es so einfach wie das Bearbeiten von Gemfile und das Hinzufügen einer bestimmten Version für sqlite:

gem 'sqlite3', '~> 1.3.13
6
cmantas
#!/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

Für Windows gehen Sie zu C:/Ruby25-x64/lib/Ruby/gems/2.5.0/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3.rb.

und sicher gehen 

require "sqlite3" statt nativ

1
zawhtut

Die einfachste Möglichkeit, Ruby on Rails auf einem Windows-Computer einzurichten, ist der RailsInstaller, der sqlite3 automatisch installiert und für Sie konfiguriert. Ein Schritt.

http://railsinstaller.org/de

0
regularmike

Ich dachte mir, ich würde eine Antwort einreichen - aus den Kommentaren, um der Nachwelt willen. Das Problem schien zu sein, dass ich mir eine neue Version von Ruby/Rails (für Windows) schnappte, die "noch" nicht mit SQLite3 kompatibel war.

Ich habe auf 1.9.x heruntergestuft und konnte Dinge laufen lassen.

0
chrisp

Holen Sie sich das fette Binary von hier 

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

und 

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