Gem update auf Windows - ist es kaputt?
Dies ist ein follow-up zu diese Frage.
Problem, wenn ich die gem update
Befehl auf Windows), wenn es zu einem
Edelstein, dessen neueste version NICHT über Windows-Binärdateien, werde es versuchen
erstellen der nativen Erweiterung, welche wird natürlich scheitern. Zum Beispiel:
Updating sqlite3-ruby
Building native extensions. This could take a while...
ERROR: While executing gem ... (Gem::Installer::ExtensionBuildError)
ERROR: Failed to build gem native extension.
c:/ruby/bin/ruby.exe extconf.rb update
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.
Den alten pre-1.x Verhalten der Fragen, für die mindestens erforderliche Plattform
aus der Aktualisierung möglich. Jetzt kann ich nicht aktualisieren, wenn ich die deinstallieren
lästig gems (derzeit sqlite3-ruby und hpricot), führen Sie das update,
dann re-installieren Sie die Edelsteine mit der --version wechseln.
Hat jemand eine Lösung für dieses Problem oder sind wir mit ihm stecken?
Hinweis:
$ gem -v
1.2.0
$ ruby -v
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]
Note (26 September 2008): ich gerade aktualisiert, um Edelsteine 1.3.0 und das problem weiterhin besteht.
Hinweis (18 November 2008): Nur aktualisiert, um Edelsteine 1.3.1 und das problem weiterhin besteht.
Hinweis (28 April 2009): Die neueste version von Edelsteinen (1.3.2) jetzt überspringt alle Edelsteine, wo der Bau von native extensions schlägt fehl, während der Aktualisierung, in anderen Worten, das problem ist behoben. Hurra!
- Meinst du 28. April 2009? Oder sind Sie nach der time traveller-Abzeichen?
- Was ist, wenn ich installieren möchte ein neues Schmuckstück und es schlägt fehl, wenn bei der Installation? Edelsteine 1.3.2 hat dieses gelöst??
- Ja, dieses problem ist seit langem behoben. Heute, jetzt sind wir an RubyGems version 1.3.7.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Edelsteine, wie der version 1.3.2, wird nun überspringen Edelsteine, die nicht bauen, also Rubygems-update auf die neueste version und das problem diskutiert, sollte hier gelöst werden.
Die folgende Lösung ist jetzt veraltet, aber ich überlasse es hier für das Protokoll.
Ich begann einen thread zu diesem Thema auf der Ruby-Forum (es ist ein front-end auf der mailing-Liste). Es gibt einige interessante Diskussion; ist es Wert, gelesen zu werden. Es gibt sogar ein sehr hacky Lösung dieses Problems gibt es:
Ruft es die
gem outdated
Befehl und erstellt eine Liste aller von der veralteten Edelsteine. Sie iteriert dann über die Liste und ruftgem update
für jede einzelne veraltete gem. Wenn man scheitert, es ist nur verschoben auf die nächste.Scheint es, dass wir stecken geblieben sind. Ich habe festgestellt hier, dass es keine MSWIN32 in Edelstein für die Letzte version (1.2.4), habe ich versucht zu installieren, es auf meinem computer und habe das gleiche problem.
Installation der vorherigen version funktioniert einwandfrei:
Führen Sie den nachstehenden Befehl und es sollte funktionieren:
Blick auf die RubyForge-Datei-Liste für sqlite3-ruby zeigt, dass die version 1.2.3 Edelsteine, die erstellt wurden, mithilfe von Visual Studio 6 und MinGW (sqlite3-ruby-1.2.3-MSWIN32 in.gem & sqlite3-ruby-1.2.3-x86-mingw32.gem). Allerdings, version 1.2.4 nicht eine solche pre-built Edelsteine.
Wenn Sie Visual Studio 6 oder MinGW installiert und der compiler-Umgebungsvariablen einrichten (zumindest für Visual Studio 6 aber nicht sicher über MinGW), die gem aufbauen sollte während der installation. Ich bin mir nicht sicher, ob die Edelsteine bauen, die unter neueren Versionen von Visual Studio.