Frage

Aktualisieren: Schauen Sie sich diese Folgefrage an: Gem-Update unter Windows – ist es kaputt?


Wenn ich unter Windows Folgendes mache:

gem install sqlite3-ruby

Ich erhalte die folgende Fehlermeldung:

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

c:/ruby/bin/ruby.exe extconf.rb install sqlite3-ruby --platform Win32
checking for fdatasync() in rt.lib... no
checking for sqlite3.h... no

nmake
'nmake' is not recognized as an internal or external command,
operable program or batch file.


Gem files will remain installed in c:/ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4 for inspection.
Results logged to c:/ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4/ext/sqlite3_api/gem_make.out

Das Gleiche passiert mit dem Hprikosen-Edelstein.Ich scheine mich zu erinnern, dass diese Gems problemlos auf Gems < 1.0 installiert wurden, aber jetzt, wo ich auf 1.2.0 bin, ist alles schief gelaufen.

Ich habe auch Folgendes versucht:

gem install sqlite3-ruby --platform Win32

Das funktioniert natürlich auch nicht (gleicher Fehler)

Weiß jemand, was hier los ist und wie man das beheben kann?


Aktualisieren: Schauen Sie sich diese Folgefrage an: Gem-Update unter Windows – ist es kaputt?

War es hilfreich?

Lösung

Wie Nathan andeutet, scheint dies mit der Tatsache zusammenzuhängen, dass die neuesten Versionen der Edelsteine ​​sqlite3-ruby und hpricot offenbar keine Windows-Versionen haben.Hier erfahren Sie, was in dieser Situation zu tun ist (beachten Sie, dass der Name des Edelsteins automatisch mit einem Platzhalter versehen wird, sodass Sie ihn einfach eingeben können sql und erhalten Sie eine Liste aller Edelsteine, beginnend mit sql):

$ gem list --remote --all sqlite

*** REMOTE GEMS ***

sqlite (2.0.1, 2.0.0, 1.3.1, 1.3.0, 1.2.9.1, 1.2.0, 1.1.3, 1.1.2, 1.1.1, 1.1)
sqlite-ruby (2.2.3, 2.2.2, 2.2.1, 2.2.0, 2.1.0, 2.0.3, 2.0.2)
sqlite3-ruby (1.2.4, 1.2.3, 1.2.2, 1.2.1, 1.2.0, 1.1.0, 1.0.1, 1.0.0, 0.9.0, 0.6.0, 0.5.0)

Anschließend können Sie die Version auswählen, die Sie installieren möchten:

gem install sqlite3-ruby -v 1.2.3

Um hpricot erfolgreich zu installieren, habe ich Folgendes getan:

gem install hpricot -v 0.6

Ärgerlicherweise mache ich ein gem update versucht, die Gems auf die neuesten, unter Windows defekten Versionen zu aktualisieren.Wenn bei der Update-Routine ein Fehler auftritt, werden Sie vom gesamten Prozess ausgeschlossen.Es gibt eine (knifflige) Lösung für dieses Problem Hier.

Ist dieses Problem also ein Fehler in Gems?Sollten Gems die Plattform nicht automatisch erkennen und die neueste kompatible Version installieren?

Andere Tipps

Ich hatte das gleiche Problem unter Ubuntu, das hat das Problem für mich gelöst:

http://newsgroups.derkeiler.com/Archive/Comp/comp.lang.ruby/2008-08/msg00339.html

Kann es sein, dass die neueste Version noch nicht auf Win32 portiert wurde?Da dieses spezielle Gem über Bindungen an kompilierten Code verfügt, wäre ein plattformspezifisches Gem erforderlich.Wenn ich die Installation von Version 1.2.3 anstelle der aktuellen Version 1.2.4 erzwinge, wird zwar die plattformspezifische Version installiert, aber wenn ich gem erlaube, zu versuchen, die aktuelle Version zu installieren, erhalte ich die generische Version 1.2.4 (in den Gems Im Bibliotheksordner fehlt das Suffix -x86-mswin32, das die anderen sqlite3-ruby-Ordner in ihren Namen haben.

Vielleicht kann jemand anderes antworten, wie Gem mit plattformspezifischen Gems umgeht.Werden für jede Plattform separate Gems hochgeladen und die Gem-Software wählt aus, welches heruntergezogen werden soll?

zuerst von sqlite.org(http://www.sqlite.org/download.html)
herunterladen ->
Vorkompilierte Binärdateien: sqlite-dll-win32-x86-3071700.zip
und Quellcode: sqlite-autoconf-3071700.tar.gz
dann extrahieren als:

-include
    --sqlite3.h
    --sqlite3ext.h
-lib
    --shell.c
    --sqlite3.c
    --sqlite3.def
    --sqlite3.dll

letztes Installationsjuwel wie:

gem install sqlite3 --platform=ruby -- --with-sqlite3-include=path\to\include  
 --with-sqlite3-lib=path\to\lib --no-ri --no-rdoc

Viel Glück!

Ich bin auch auf dieses Problem gestoßen.Es ist wichtig zu wissen, dass der Unterschied zwischen 1.2.3 und 1.2.4 nicht signifikant ist.Hier sind die 1.2.4.Versionshinweise:

Veröffentlichungsname:1.2.4

Anmerkungen:Diese Version aktualisiert nur die generierte C -Datei, um die Kompatibilitätsänderungen, die an der SWIG -Datei vorgenommen wurden, widerzuspiegeln.Binärbuilds (z. B. Windows) sind nicht betroffen und benötigen kein Update.Im Allgemeinen benötigen Sie dieses Update nur nicht, es sei denn, Sie verwenden eine Version von Ruby vor 1.8.6.(Quelle: 1.2.4.Versionshinweise)

Hoffe das hilft anderen!

Ich hatte das gleiche Problem unter Windows und habe MinGW installierthttp://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/MinGW%205.1.6/MinGW-5.1.6.exe/downloadund das Problem ist weg :-)

C:> Gem Installation HPRICOT erfolgreich installiert HPRICOT-0.8.2-X86-MSWIN32 1 Gem Installed Installing RI-Dokumentation für HPRICOT-0.8.2-X86-MSWIN32 ...RDoc-Dokumentation für hpricot-0.8.2-x86-mswin32 wird installiert...

C:> Gem-Installation Ruby-Postgres erfolgreich installiert Ruby-Postgres-0.7.1.2006.04.06-X86-MSWIN32 1 Gem Installierte Installation von RI-Dokumentation für Ruby-Postgres-0.7.1.2006.04.06-X86-Mswin32 ...Installation der RDoc-Dokumentation für ruby-postgres-0.7.1.2006.04.06-x86-mswin32...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top