Estoy tratando de instalar el puma joya, pero cuando ejecuto

gem install puma

Me sale 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

La adición de gem 'puma' a mi Gemfile y ejecutando bundle install no es una opción, debido a que simplemente no funciona con cualquier gema y me da un mensaje de error (que es un tema aparte, que he eludido con las otras joyas que yo he usado por la instalación de ellos a través de gem install).

  • Suena como que usted no podría tener el openssl cabeceras instaladas para su plataforma. Echa un vistazo puma problema GH#202 para encontrar enlaces a OpenSSL encabezados para Windows.
  • trate de gem install puma --source http://rubygems.org
  • Corrí bundle update antes de bundle install y que se solucionó el problema. No estoy seguro si esa era la única cosa que ayudó a que, como ya he descargado manualmente openssl y gem install puma -- --with-opt-dir=c:/RailsInstaller/openssl ruby -v -ropenssl -e "puts OpenSSL::OPENSSL_VERSION"
InformationsquelleAutor EJ107 | 2013-11-29

5 Comentarios

  1. 13

    Encontré mismo problema.

    sudo apt-get install libssl-dev

    fijo para mí.

    • El OP es el uso de windows, no de linux.
    • Pero, esto fue útil para mí.
  2. 9

    Corrí bundle update antes de bundle install y que resuelve el problema para mí.

    No estoy seguro si esa era la única cosa que ayudó a que, como ya he actualizado manualmente puma antes de que, siguiendo estos pasos:

    1. Comprueba que la versión de openssl Ruby está utilizando mediante la ejecución de ruby -v -ropenssl -e "puts OpenSSL::OPENSSL_VERSION"
    2. Descargado el derecho de openssl versión de
      http://packages.openknapsack.org/openssl/openssl-1.0.0o-x86-windows.tar.lzma
      (tienes el enlace de https://github.com/hicknhack-software/rails-disco/wiki/Installing-puma-on-windows y editado basada en la salida de #1).
    3. Extraído utilizando openssl http://www.7-zip.org a C:\RailsInstaller\openssl
    4. gem install puma -- --with-opt-dir=C:/RailsInstaller/openssl
    • Creo que fue la actualización manual. He seguido los pasos y funcionó. Tenga en cuenta que es importante el uso de barras diagonales (C:/RailsInstaller/openssl) en lugar de barras diagonales inversas (C:\RailsInstaller\openssl).
    • Esto funcionó para mí, pero tuve que ir a la caza de una versión de 64 bits de openssl como estoy usando el de 64 pero Ruby, etc. Para su referencia, la he encontrado aquí: bintray.com/artifact/download/oneclick/OpenKnapsack/x64/…
  3. 5

    Descubierto la solución para el puma paquete. Siguieron las instrucciones de https://github.com/hicknhack-software/rails-disco/wiki/Installing-puma-on-windows

    Primer lugar usted necesita para descargar:

    • DevKit compatible con su versión de ruby
    • OpenSSL Desarrollador (Paquete contiene los archivos de cabecera y binarios)

    Y luego:

    • Instalar DevKit, por ejemplo, en c:\devkit
    • Desempaquetar el Paquete OpenSSL, por ejemplo, en c:\openssl (uso 7Zip o PeaZip)
    • Usted necesita una copia de la ddl desde el directorio bin (libeay32.dll y ssleay32.dll) a su ruby/bin.
    • Abrir una consola de windows
    • Inicializar el DevKit entorno de compilación: c:\devkit\devkitvars.bat (excepto aquí, he utilizado este en la línea de comandos en lugar de: ruby dk.rb init)

    Ahora es posible instalar el puma joya con el OpenSSL paquetes:

    gem install puma -- --with-opt-dir=c:\openssl
    • Esta solución funcionó para mí. En caso de que alguien necesite detalle: gem install puma -v '2.9.1' -- --with-opt-dir=c:\openssl bundle install
    • ruby/bin ya tenía los 2 dlls en mi sistema, he intentado sobrescribe con los de openssl y ruby comenzó a quejarse de soporte para openssl. Volvió a los archivos originales y todo funcionaba bien, gracias!
  4. 0

    Estoy usando Windows 8 y no podía conseguir este trabajo en el modo de desarrollo. Sin duda, se trabajó en el modo de producción cuando me enviaron a Heroku. ¿Has probado en el modo de producción?

Dejar respuesta

Please enter your comment!
Please enter your name here