web-dev-qa-db-ja.com

Ruby on Rails

Puma Gemをインストールしようとしていますが、実行すると

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でも機能せず、エラーメッセージが表示されるためです(これは別の問題ですが、 gem install)経由でインストールすることで、私が使用した他のgemを回避しました。

23
EJ107

非常に同じ問題が発生しました。

Sudo apt-get install libssl-dev

私のために修正しました。

13
Vitali

bundle updateの前にbundle installを実行したところ、問題は解決しました。

その前に手動でピューマを更新したので、それだけが役に立ったかどうかはわかりませんが、次の手順を使用します。

  1. Openssl Rubyが使用しているバージョンのバージョンをRuby -v -ropenssl -e "puts OpenSSL::OPENSSL_VERSION"を実行して確認しました
  2. http://packages.openknapsack.org/openssl/openssl-1.0.0o-x86-windows.tar.lzma から適切なopensslバージョンをダウンロードしました( https:/からリンクを取得しました/github.com/hicknhack-software/Rails-disco/wiki/Installing-puma-on-windows および#1)の出力に基づいて編集しました。
  3. http://www.7-Zip.org を使用してopensslをC:\ RailsInstaller\opensslに抽出
  4. gem install puma -- --with-opt-dir=C:/RailsInstaller/openssl
9
Anis Abboud

プーマバンドルの解決策を考え出した。 https://github.com/hicknhack-software/Rails-disco/wiki/Installing-puma-on-windows からの指示に従いました

最初にダウンロードする必要があります:

  • DevKit 互換性があるRubyバージョン
  • OpenSSL 開発者パッケージ(ヘッダーファイルとバイナリが含まれています)

その後:

  • DevKitをインストールします。 c:\devkit
  • OpenSSLパッケージを解凍します。 c:\openssl(7ZipまたはPeaZipを使用)
  • Binディレクトリからddlsをコピーする必要があります(libeay32.dllおよびssleay32.dll)をRuby/binディレクトリに追加します。
  • Windowsコンソールを開く
  • DevKitビルド環境を初期化します:c:\devkit\devkitvars.bat(ここを除いて、代わりにコマンドプロンプトでこれを使用しました:Ruby dk.rb init

OpenSSLパッケージを使用してpuma gemをインストールできるようになりました。

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

あなたは問題#430をヒットしたと思います https://github.com/puma/puma/issues/4

Rubyを再インストールすると、GitHubでこの問題を解決するのに役立つ可能性があります。

3
Nikolai Manek

私はWindows 8を使用していますが、開発モードでこの作業を行うことができませんでした。確かに、Herokuにデプロイしたときは、プロダクションモードで動作しました。プロダクションモードで試しましたか?

0
Omar Sar