tag para online mp3tag mp3meta windows ruby rubygems

para - Actualización de gemas en Windows-¿está roto?



tag rename (4)

Esta es una continuación de esta pregunta .

Cuando ejecuto el comando de gem update en Windows, cada vez que llega a una joya cuya versión más reciente NO tiene los binarios de Windows, intentará construir la extensión nativa que, por supuesto, fallará. Por ejemplo:

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.

El antiguo comportamiento anterior a 1.x de solicitar la plataforma requerida al menos posibilitó la actualización. Ahora no puedo actualizar en absoluto a menos que desinstale las gemas problemáticas (actualmente sqlite3-ruby y hpricot), ejecute la actualización, luego vuelva a instalar las gemas usando el modificador --version.

¿Alguien tiene una solución para este enigma o estamos atrapados con eso?

Nota:

$ gem -v 1.2.0 $ ruby -v ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]

Nota (26 de septiembre de 2008): Acabo de actualizar a gems 1.3.0 y este problema persiste.

Nota (18 de noviembre de 2008): recién actualizado a gems 1.3.1 y el problema persiste.

Nota (28 de abril de 2009): la última versión de Gems ( 1.3.2 ) omite ahora las gemas en las que falla la creación de extensiones nativas durante la actualización; en otras palabras, el problema es fijo. ¡Hurra!


Parece que estamos estancados. He encontrado aquí que no hay una gema mswin32 para la última versión (1.2.4), traté de instalarlo en mi computadora y tuve el mismo problema.

La instalación de la versión anterior funciona bien:

gem install sqlite3-ruby --version ''1.2.3''


Al mirar la lista de archivos de RubyForge para sqlite3-ruby, se revela que la versión 1.2.3 tiene gemas que se crearon con Visual Studio 6 y MinGW (sqlite3-ruby-1.2.3-mswin32.gem y sqlite3-ruby-1.2.3-x86- mingw32.gem). Sin embargo, la versión 1.2.4 no tiene tales gemas preconstruidas.

Si tiene instalado Visual Studio 6 o MinGW y tiene configuradas las variables de entorno del compilador (al menos para Visual Studio 6 pero no está seguro acerca de MinGW), la gema debería compilarse durante la instalación. No estoy seguro de si las gemas se compilarán en versiones más nuevas de Visual Studio.


Las gemas, a partir de la versión 1.3.2 , ahora omitirán gemas que no se pueden construir, por lo tanto, actualice Rubygems a la última versión y el problema que se discute aquí debe ser resuelto.

gem update --system

La siguiente solución ahora está en desuso, pero la dejo aquí para el registro.

Comencé un hilo sobre este tema en el Ruby Forum (es una parte delantera de la lista de correo). Hay una discusión interesante; vale la pena leerlo Incluso hay una solución muy hacky para este problema:

`gem.bat outdated`.split(//n/).map{|z|z.scan(/^[^[:space:]]+/)}.flatten.each{|z| `gem.bat update #{z}`}

Llama al comando de gem outdated y crea una lista de todas las gemas obsoletas. Luego itera sobre la lista y llama a la gem update para cada gema desactualizada. Si uno falla, simplemente pasa al siguiente.


Ejecute el siguiente comando y debería funcionar:

gem install sqlite3-ruby --platform=mswin32