El Capitanをインストールしたばかりで、gem eventmachine
1.0.7
をインストールできない。 openssl
は1.0.2a-1
にあります。 --with-ssl-dir
を使用しようとしましたが、無視されているようです。
彼らの githubレポジトリ にも報告しました。
任意の提案は本当に感謝しています。ありがとう。
$ ls /usr/local/Cellar/openssl/1.0.2a-1/include/openssl/ssl.h
/usr/local/Cellar/openssl/1.0.2a-1/include/openssl/ssl.h
$ gem install eventmachine -v '1.0.7' -- --with-ssl-dir=/usr/local/Cellar/openssl/1.0.2a-1/include
/Users/pain/.rbenv/versions/2.1.2/bin/Ruby -r ./siteconf20150612-56154-1hsjz2n.rb extconf.rb --with-ssl-dir=/usr/local/Cellar/openssl/1.0.2a-1/include
checking for rb_trap_immediate in Ruby.h,rubysig.h... no
checking for rb_thread_blocking_region()... yes
checking for Ruby/thread.h... yes
checking for rb_thread_call_without_gvl() in Ruby/thread.h... yes
checking for inotify_init() in sys/inotify.h... no
checking for __NR_inotify_init in sys/syscall.h... no
checking for writev() in sys/uio.h... yes
checking for rb_thread_fd_select()... yes
checking for rb_fdset_t in Ruby/intern.h... yes
checking for rb_wait_for_single_fd()... yes
checking for rb_enable_interrupt()... no
checking for rb_time_new()... yes
checking for sys/event.h... yes
checking for sys/queue... yes
checking for clock_gettime()... no
checking for gethrtime()... no
creating Makefile
make "DESTDIR=" clean
make "DESTDIR="
compiling binder.cpp
In file included from binder.cpp:20:
./project.h:116:10: fatal error: 'openssl/ssl.h' file not found
#include <openssl/ssl.h>
^
1 error generated.
make: *** [binder.o] Error 1
make failed, exit code 2
$ gem install eventmachine -- --with-cppflags=-I/usr/local/opt/openssl/include
Building native extensions with: '--with-cppflags=-I/usr/local/opt/openssl/include'
This could take a while...
Successfully installed eventmachine-1.0.8
1 gem installed
あなたはまた、このようなバンドラーを設定することができますが、私はそれが表面的だと思います
bundle config build.eventmachine --with-cppflags=-I/usr/local/opt/openssl/include
バンドラーと自作を使用する場合:
$ bundle config build.eventmachine --with-cppflags=-I$(brew --prefix openssl)/include
$ bundle install
brew link --force openssl
その後:
gem install eventmachine
また修正します。
P.Sおそらくbrew install openssl
を削除してもう一度実行する必要があるでしょう。
この問題は、AppleがOSXからopensslを削除したために発生します(El Captainビルド)。
gem pristine eventmachine -- --with-cppflags=-I/usr/local/opt/openssl/include
pristineは古いgemを削除して再コンパイルします。
Cpp flagsオプションを使用すると、コンパイラはopensslヘッダを見つけることができます。
必要に応じてバージョンを追加することもできます。
gem pristine eventmachine -v '1.0.4' -- --with-cppflags=-I/usr/local/opt/openssl/include
私はv 1.0.3をインストールしようとしていましたが、これは私にとってうまくいきました。
gem install eventmachine -v '1.0.3' -- --with-cppflags=-I/usr/local/opt/openssl/include
これらの議論はとても役に立ちました。 https://github.com/eventmachine/eventmachine/issues/602
EventMachineを他のgemの依存関係としてインストールしている場合は、gemを手動でインストールするときに必ず正しいバージョンを指定してください。
gem install eventmachine -v 1.0.5 -- --with-cppflags=-I$(brew --prefix openssl)/include
それからあなたはもともとインストールしようとしていたgemをインストールすることができます。
gem install mailcatcher
これで問題は解決しました。
PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig" gem install eventmachine -v "1.0.8"
代替案の1つは、次のように、ユーザープロファイル全体にbundler configエントリを追加することです。
cd ~
bundle config build.eventmachine --with-cppflags=-I$(brew --prefix openssl)/include
ホームディレクトリに.bundle/configファイルが作成されます。これはbundle install
を実行したときにすべてのプロジェクトで使用されます。
これは私のために働いた -
gem install eventmachine -v '1.0.7' -- --debug --backtrace --with-cppflags=-I/usr/local/opt/openssl/include --with-ldflags=-L/usr/local/opt/openssl/lib
Building native extensions with: '--debug --backtrace --with-cppflags=-I/usr/local/opt/openssl/include --with-ldflags=-L/usr/local/opt/openssl/lib'
This could take a while...
Successfully installed eventmachine-1.0.7
Parsing documentation for eventmachine-1.0.7
Installing ri documentation for eventmachine-1.0.7
Done installing documentation for eventmachine after 9 seconds
1 gem installed
注: - このgemを正しくインストールする前に、いくつかのことをしなければなりませんでした。これらはあなたに当てはまるかもしれないので、それらをここにリストします -
1.)コーポレートVPNをオフにしましたORプロキシ設定をオンにする必要があるかもしれません
2.)PKG_CONFIG_PATHが - に設定された
echo $PKG_CONFIG_PATH
/usr/local/opt/openssl/lib/pkgconfig
3.)bash_profileの$ PATHに以下を追加しなければなりません(私の場合は〜/ .zshrc)
export PATH="/usr/local/opt/openssl/bin:$PATH"
4.)また、このSO投稿で得たいくつかの回答に反して、またこのスレッド github-eventmachine 、私はeventmachine
をインストールすることができませんでした
gem install eventmachine -v '1.0.7' -- --debug --backtrace --with-cppflags=-I/usr/local/include --with-ldflags=-L/usr/local/lib
Fetching: eventmachine-1.0.7.gem (100%)
Building native extensions with: '--debug --backtrace --with-cppflags=-I/usr/local/include --with-ldflags=-L/usr/local/lib'
This could take a while...
ERROR: Error installing eventmachine:
ERROR: Failed to build gem native extension.
Opensslの場所を指定する場合、/usr/local/opt/openssl/include
が正しい場所で、/usr/local/include
ではないようです。