son rails que las instalar gems gemas ruby-on-rails ruby-on-rails-4 rubygems puma

que - No se puede instalar la gema Puma en Ruby on Rails



que son las gemas en ruby (5)

Intento instalar la gema del puma, pero cuando corro

gem install puma

Recibo este mensaje de error:

Temporarily enhancing PATH to include DevKit Building native extensions. This could take a while... ERROR: Error installing puma: ERROR: Failed to build gem native extension. C:/Ruby193/bin/ruby.exe extconf.rb creating Makefile make generating puma_http11-i386-mingw32.def compiling http11_parser.c ext/http11/http11_parser.rl: In function ''puma_parser_execute'': ext/http11/http11_parser.rl:111:3: warning: comparison between signed and unsigned integer expressions compiling io_buffer.c io_buffer.c: In function ''buf_to_str'': io_buffer.c:119:3: warning: pointer targets in passing argument 1 of ''rb_str_new'' differ in signedness c:/Ruby193/include/ruby-1.9.1/ruby/intern.h:653:7: note: expected ''const char *'' but argument is of type ''uint8_t *'' compiling mini_ssl.c In file included from mini_ssl.c:3:0: c:/Ruby193/include/ruby-1.9.1/ruby/backward/rubyio.h:2:2: warning: #warning use "ruby/io.h" instead of "rubyio.h" mini_ssl.c:4:25: fatal error: openssl/bio.h: No such file or directory compilation terminated. make: *** [mini_ssl.o] Error 1 Gem files will remain installed in C:/Ruby193/lib/ruby/gems/1.9.1/gems/puma-2.6.0 for inspection. Results logged to C:/Ruby193/lib/ruby/gems/1.9.1/gems/puma-2.6.0/ext/puma_http11/gem_make.out

Agregar gem ''puma'' a mi Gemfile y ejecutar bundle install no es una opción, porque eso simplemente no funciona con ninguna gema y me da un mensaje de error (que es un problema aparte, uno que eludí con el otro gemas que he usado instalándolas a través de la gem install ).



Encontré la solución para el paquete de puma. Direcciones seguidas desde https://github.com/hicknhack-software/rails-disco/wiki/Installing-puma-on-windows

Primero debes descargar:

  • DevKit compatible con tu versión ruby
  • Paquete de desarrollador OpenSSL (contiene archivos de encabezado y binarios)

Y entonces:

  • Instale DevKit, por ejemplo, en c:/devkit
  • Descomprime el paquete OpenSSL, por ejemplo, en c:/openssl (usa 7Zip o PeaZip)
  • Debe copiar los ddls del directorio bin ( libeay32.dll y ssleay32.dll ) en su directorio ruby ​​/ bin.
  • Abra una consola de Windows
  • Inicialice el entorno de compilación DevKit: c:/devkit/devkitvars.bat (excepto que aquí lo usé en el símbolo del sistema en su lugar: ruby dk.rb init )

Ahora es posible instalar la gema puma con los paquetes OpenSSL:

gem install puma -- --with-opt-dir=c:/openssl


Estoy usando Windows 8 y no pude hacer este trabajo en modo de desarrollo. Sin duda, funcionó en modo de producción cuando me desplegué en Heroku. ¿Has probado en modo de producción?


Se encontró con el mismo problema.

sudo apt-get install libssl-dev

me lo arregló


bundle update antes de la bundle install y eso resolvió el problema por mí.

No estoy seguro de si eso fue lo único que ayudó, ya que actualicé puma manualmente antes de eso, siguiendo estos pasos:

  1. Comprueba qué versión de openssl Ruby está utilizando ejecutando ruby -v -ropenssl -e "puts OpenSSL::OPENSSL_VERSION"
  2. Se descargó la versión de openss correcto de http://packages.openknapsack.org/openssl/openssl-1.0.0o-x86-windows.tar.lzma (se obtuvo el enlace de https://github.com/hicknhack-software/rails-disco/wiki/Installing-puma-on-windows y editado en base a la salida de # 1).
  3. Openssl extraído usando http://www.7-zip.org a C: / RailsInstaller / openssl
  4. gem install puma -- --with-opt-dir=C:/RailsInstaller/openssl