2013-11-29 3 views
23

Я пытаюсь установить пума камень, но когда я бегуне удается установить Puma камень на Ruby On Rails

gem install puma 

Я получаю сообщение об ошибке:

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 

Добавление gem 'puma' к моей Gemfile и запуск bundle install не является вариантом, потому что это просто не работает с каким-либо драгоценным камнем и дает мне сообщение об ошибке (это отдельная проблема, которую я обошел с другими драгоценными камнями, которые я использовал, установив их через gem install).

+3

Похоже, что у вас могут не быть заголовки openssl, установленные для вашей платформы. Проверьте [puma issue GH # 202] (https://github.com/puma/puma/issues/202) для ссылок на заголовки OpenSSL для Windows. –

+0

try 'gem install puma --source http: // rubygems.org' –

+1

Я запускал' bundle update' перед 'bundle install', и это решило проблему. Я не уверен, что это единственное, что помогло, поскольку я вручную загрузил openssl и 'gem install puma - --with-opt-dir = c:/RailsInstaller/openssl' ' ruby ​​-v -ropenssl -e "puts OpenSSL :: OPENSSL_VERSION" ' –

ответ

3

Я думаю, что вы попали выпуск № 430 https://github.com/puma/puma/issues/430

Повторная установка рубин может помочь вам, а также он закрыл этот вопрос на GitHub.

12

Пошел через ту же проблему.

sudo apt-get install libssl-dev 

исправлено для меня.

+2

OP использует окна, а не linux. – Seiyria

+6

Но, это было полезно для меня. – ghayes

4

Выяснено решение для пумы puma. Круги направлению от https://github.com/hicknhack-software/rails-disco/wiki/Installing-puma-on-windows

Сначала вам нужно скачать:

  • DevKit совместимых с рубиновой версией
  • OpenSSL Developer Package (содержит файлы заголовков и двоичные файлы)

А потом:

  • Inst. все DevKit, например. в c:\devkit
  • Распаковать пакет OpenSSL, например. в c:\openssl (используйте 7Zip или PeaZip)
  • Вам необходимо скопировать ddls из каталога bin (libeay32.dll и ssleay32.dll) в ваш каталог ruby ​​/ bin.
  • Открыть окно консоль
  • Инициализировать среды DevKit сборки: c:\devkit\devkitvars.bat (за исключением здесь, я использовал это в командной строке вместо: ruby dk.rb init)

Теперь можно установить пуму камень с пакетами OpenSSL:

gem install puma -- --with-opt-dir=c:\openssl 
+0

Это решение сработало для меня. На всякий случай кому-то нужна подробная информация: 'gem install puma -v '2.9.1' - --with-opt-dir = c: \ openssl' ' bundle install' –

+0

ruby ​​/ bin уже имел 2 dll на моем системы, я попытался переписать их в openssl, и Ruby начал жаловаться на поддержку openssl. Вернулись к исходным файлам, и все сработало хорошо, спасибо! – cipak

9

Я побежал bundle update перед тем bundle install и решить проблему для меня.

Я не уверен, если это было единственным, что помогло, так как я вручную обновил пуму до этого, выполнив следующие действия:

  1. Проверен, какую версию OpenSSL Рубина использует запустив ruby -v -ropenssl -e "puts OpenSSL::OPENSSL_VERSION"
  2. Загрузите правую версию openssl от http://packages.openknapsack.org/openssl/openssl-1.0.0o-x86-windows.tar.lzma (получил ссылку от https://github.com/hicknhack-software/rails-disco/wiki/Installing-puma-on-windows и отредактировал ее на основе результата №1).
  3. Извлеченные OpenSSL с помощью http://www.7-zip.org к C: \ RailsInstaller \ OpenSSL
  4. gem install puma -- --with-opt-dir=C:/RailsInstaller/openssl
+0

Я думаю, что это было обновление вручную. Я последовал этим шагам, и это сработало. Обратите внимание, что важно использовать косые черты ('C:/RailsInstaller/openssl') вместо обратных косых черт (' C: \ RailsInstaller \ openssl'). – Eva

+1

Это сработало для меня, но мне нужно было искать 64-битную версию openssl, поскольку я использую 64-х, но Ruby и т. Д. Для справки я нашел его здесь: https://bintray.com/artifact/download /oneclick/OpenKnapsack/x64/openssl-1.0.1l-x64-windows.tar.lzma – Taz

0

Я использую Windows 8 и не могли получить эту работу в режиме разработки. Разумеется, он работал в режиме производства, когда я развернулся в Хероку. Вы пробовали в режиме производства?

Смежные вопросы