19 Sqlite für Ruby 2.0.0 unter Windows

Update: Das neue Sqlite-Gem Version 1.3.8 enthält die ruby 2.0 Binaries für Windows. Daher ist der beschriebene Prozess nicht mehr notwendig.

Mit der neuesten Version von Ruby ist der Sqlite3 Support aus dem RubyInstaller entfallen. Um weiterhin einfach neue Rails Anwendungen testen zu können, ist es daher notwendig Sqlite3 für MinGW zu erstellen und das Gem zu installieren.

Sucht man danach im Netz gibt es zwar etliche Fragen in Foren, aber keine scheint immer richtig zu funktionieren. Hier versuche ich nicht nur zu erklären, was man tun muss, sondern auch warum die Schritte notwendig sind.

Vorraussetzungen

Ich habe das Tutorial mit folgenden Downloads durchprobiert:

Sqlite3 kompilieren

Zunächst brauchen wir die Sqlite3 Bibliothek passend für die MinGW Umgebung von unserer Ruby Installation. Diese wurde mit dem RubyInstaller von Ruby 1.9.3 mitgeliefert. Mit Ruby 2.0.0 müssen wir sie selbst erstellen.

Schritte:

  1. DevKit installieren(Zielverzeichnis für Console: c:\devkit\)
  2. Windows Console öffnen (Ich empfehle ConEmu)
  3. DevKit Build Umgebung initialisieren
    c:\devkit\devkitvars.bat
  4. Sqlite3 Quelltext entpacken (Alternativ: 7Zip oder PeaZip benutzen)
    tar -xzf sqlite-autoconf-3071700.tar.gz c:\
  5. In das Sqlite3 Verzeichnis wechseln
    cd c:\sqlite3
  6. Makefiles mit dem configure Skript erstellen (Achtung: Forward Slash)
    bash configure --prefix=c:/sqlite3
  7. Build ausführen:
    make install

Danach sollte es neue Unterverzeichnisse geben.

  • bin\
    • sqlite3.exe
    • libsqlite3-0.dll
  • lib\
    • libsqlite3.a
    • libsqlite3.dll.a
    • libsqlite3.la
  • include\
    • sqlite3.h
    • sqlite3ext.h

Sqlite3 RubyGem installieren

Bisher konnte man einfach mit gem install sqlite3 das passende RubyGem installieren. Das klappt mit Ruby 2.0.0 nicht mehr, da keine passende Native Extension in dem Gem vorhanden ist.

RubyGems wählt standardmäßig die MinGW Version des Sqlite3 Gems, die zunächst beim Installieren keine native Extension compiliert. Eine Möglichkeit ist als Plattform Ruby festzulegen und die passenden Parameter zum compilieren der Extension mitzugeben.

Schritte:

  1. Windows Console öffnen
  2. DevKit für Ruby Version verfügbar machen:
    ruby c:\devkit\dk.rb init; ruby c:\devkit\dk.rb setup
  3. Ruby Platform Gem mit Nativer Extension installieren (Achtung: Forward Slashes)
    gem install sqlite3 --platform=ruby --no-ri --no-rdoc -- --with-sqlite3-dir=c:/sqlite3 --with-sqlite3-lib=c:/sqlite3/lib

Anschließend sollte in dem Gem die folgende Datei vorhanden sein:
c:\ruby200\lib\ruby\gems\2.0.0\gems\sqlite3-1.3.7\lib\sqlite3\sqlite3_native.so

Erster Testlauf

Damit Ruby die Sqlite3 Bibliothek auch findet können wir entweder c:\sqlite3\bin zum System-Pfad hinzufügen, oder die Dateien von c:\sqlite3\bin\ nach c:\ruby200\bin kopieren. Letzteres entspricht dem Stand den Ruby 1.9.3 ausgeführt hatte.

Anschließend können wir es testen:

  1. Windows Console öffnen
  2. Ruby Umgebung starten
    irb
  3. Sqlite3 einbinden
    require 'sqlite3'

Das letzte Kommando sollte => true zurück liefern.

Bundler Kompatibilität

Immer wenn in einem Gemfile für Bundler sqlite3 erwähnt wird, versucht dieser das Sqlite3 Gem für MinGW zu installieren. Was dazu führt das es nicht funktioniert. Der MinGW Version fehlt die native Erweiterung für Ruby 2.0.0. Es gibt auch keine Möglichkeit die native Erweiterung mit diesem Gem zu bauen. Wir können die native Bibliothek aus der Ruby Version des Gems kopieren, sofern beide die gleiche Version haben.

MinGW Version des Gems patchen:

  1. Windows Console öffnen
  2. WinGW Version von sqlite installieren:
    gem install sqlite3 --no-ri --no-rdoc
  3. Die Datei sqlite3_native.so
    von c:\ruby200\lib\ruby\gems\2.0.0\gems\sqlite3-1.3.7\lib\sqlite3
    in c:\ruby200\lib\ruby\gems\2.0.0\gems\sqlite3-1.3.7-x86-mingw32\lib\sqlite3 kopieren.
  4. Ev. die Ruby Version des Gems löschen um das System aufzuräumen:
    gem uninstall sqlite3 --platform=ruby
    (Die sqlite3-1.3.7 auswählen)

Anschließend nochmal einen Testlauf durchführen.

Ich hoffe die Anleitung konnte einige Klarheit in dem Dschungel schaffen.

←zurück
27.06.2022

<a href="http://ivermectinetc.com/#">buy ivermectin canada</a> buy ivermectin online

28.06.2022

viagra europe pharmacy <a href="https://viagrause5.com/%20">cheap generic viagra online pharmacy</a> https://viagrause5.com/

01.07.2022

buy cheap viagra from india <a href="https://gogiviagr.com/%20">cheap viagra from canada</a> https://gogiviagr.com/

27.07.2022

cialis cheap <a href="https://cialssis.com/%20">cialis canadian pharmacy</a> https://cialssis.com/

29.07.2022

электрическая рохля
[url=https://samokhodnyye-elektricheskiye-telezhki.ru]http://www.samokhodnyye-elektricheskiye-telezhki.ru/[/url]

13.08.2022
ms-marvelnmexj

[url=http://tynews.ru/yi30b]Мажор 4 сезон 1-4 5 6 серия[/url]

14.08.2022
ms-marvelbowdd

[url=http://tynews.ru/yi30b]Сериал Мажор 4 сезон 8 серия[/url]

14.08.2022
ms-marvelvooqs

[url=http://tynews.ru/yi30b]Мажор 4 сезон 1-4 5 6 серия[/url]

14.08.2022
ms-marvelpjguj

[url=http://tynews.ru/yi30b]Мажор 4 сезон все серии[/url]

22.08.2022

hook and thesis statement <a href="https://thesismetre.com/%20">masters thesis example</a> what is a thesis sentence https://thesismetre.com/

30.08.2022
ehzjsnrl

Сериал дом дракона смотреть онлайн [url=https://vedaraceramics.com/community/profile/cheriwhinham802/]Смотреть дом дракона сериал[/url] https://searchika.com/user/profile/14670

30.08.2022
ysipdlfu

Дом дракона [url=http://domdrakona.su/serial-dom-drakona-sezon-smotret/serial-dom-drakona-1-sezon-smotret-onlayn-besplatno-vse-serii-podryad-v-horoshem-kachestve.html]Дом дракона[/url] http://domdrakona.su/serial-dom-drakona-sezon-smotret/serial-smotret-onlayn-dom-drakona-1-sezon.html

31.08.2022

House of the dragon season 1 episode 1 release time [url=http://eng.filmtvdir.com/hbo/dance-with-dragons-hbo.html]house of the dragon 123moviesonline [/url] http://eng.filmtvdir.com/hbo/dance-with-dragons-hbo.html House of the dragon episode 1 leak

31.08.2022

Game of thrones dragon prequel [url=http://eng.filmtvdir.com/house-the-dragon-episode/house-of-the-dragon-splitsvilla-13-latest-episode-mx-player.html]house of the dragon house of dragon throne [/url] http://eng.filmtvdir.com/house-the-dragon-episode/house-of-the-dragon-splitsvilla-13-latest-episode-mx-player.html house of the dragon house of dragon iron throne

01.09.2022

[url=http://smotret-film-prosmotr-filmov.ru/film-smotret-onlayn-besplatno/film-znahar-smotret-onlayn-besplatno.html]Фильм знахарь смотреть онлайн бесплатно[/url] Каникулы фильм 2015 смотреть в хорошем качестве http://smotret-film-prosmotr-filmov.ru/film-smotret-onlayn/film-bremya-smotret-onlayn.html

01.09.2022

[url=http://smotret-film-prosmotr-filmov.ru/interesnie-filmi/istoricheskie-sovremennie-russkie-filmi.html]Исторические современные русские фильмы[/url] Смотреть бесплатно фильм в хорошем качестве родные http://smotret-film-prosmotr-filmov.ru/film-smotret-onlayn/smotret-onlayn-film-morpehi.html

01.09.2022

[url=http://smotret-film-prosmotr-filmov.ru/film-smotret-onlayn/halo-film-smotret-onlayn.html]Хало фильм смотреть онлайн[/url] Смотреть фильм исчезнувший онлайн бесплатно http://smotret-film-prosmotr-filmov.ru/kachestve/smotret-film-morbius-2022-v-horoshem-kachestve-besplatno.html

01.09.2022

[url=http://smotret-film-prosmotr-filmov.ru/film-smotret-onlayn-besplatno-horoshem-kachestve/smotret-film-uzhasov-onlayn-besplatno-v-horoshem-kachestve.html]Смотреть фильм ужасов онлайн бесплатно в хорошем качестве[/url] Фильм тэмми смотреть онлайн бесплатно http://smotret-film-prosmotr-filmov.ru/film-smotret-onlayn/dzhia-film-1998-smotret-onlayn.html

Your writing is perfect and complete. However, I think it will be more wonderful if your post includes additional topics that I am thinking of. I have a lot of posts on my site similar to your topic. Would you like to visit once?

kommentieren




Hat ein Quadrat vier gleiche Winkel? (Bitte klein schreiben)

© 2012 – 2023 HicknHack Software GmbH | Impressum | Datenschutzerklärung