gem eventmachine 치명적인 오류 : 'openssl / ssl.h'파일을 찾을 수 없습니다


265

그냥 엘 카피 탄을 설치하고 보석을 설치할 수 없습니다 eventmachine 1.0.7. openssl1.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

답변:


513
$ 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

2
나를 위해, 나는 이것이 작동하기 전에 먼저 openssl을 설치해야했습니다. 예 brew install openssl.
Ryan Walls

1
gem이 repo의 특정 디렉토리로 설정되어 있다면, vendor/bundle을 실행하고 싶을 것 bundle config build.GEMNAME--with-cppflags=-I/usr/local/opt/openssl/include입니다. 보석과 같은 것을 실행해야 puma했기 때문에 다른 보석에서도 마찬가지입니다.
Colton Fent

4
lloeki의 'bundle config build.eventmachine --with-cppflags = -I $ (brew --prefix openssl) / include'로 답변을 참조하십시오. 그것은 나를 위해 일했다. 이건 아니야.
justingordon

2
이것은 gem install eventmachine -v 1.0.8 -- --with-cppflags=-I/usr/local/opt/openssl/includeOSX El Capitan 10.11.5 에서 나를 위해 일했습니다
Jagdeep Singh

설치 후 나를 위해 brew install openssl해야 할 일brew link openssl --force
Sr. Oshiro

231

번 들러 및 홈 브루를 사용하는 경우 :

$ bundle config build.eventmachine --with-cppflags=-I$(brew --prefix openssl)/include
$ bundle install

1
나를 위해, 나는 이것이 작동하기 전에 먼저 openssl을 설치해야했습니다. 예 brew install openssl
Ryan Walls

이 버전은 루비 2.1.2 위에 eventmachine 1.0.3을 설치하는 나를 위해 일한
dtburgess

환상적인! 이것은 openssl에 의존하는 다른 보석 (예 : 퓨마)을 찾는 방법이기도합니다.
morgler

이 답변은 bundle install실제 gem 설치를 수행하는 데 사용되므로 번들에 지정된 정확한 버전을 설치할 수 있기 때문에 승인 된 답변보다 낫습니다 . 당신은 포함하지 않는 한 허용 대답은, 최신 버전을 설치합니다 -v x.x.xgem install수동으로 명령을 실행합니다.
Ernesto

115
brew link --force openssl

그때:

gem install eventmachine

또한 수정합니다 :

  • 보석 설치 탁
  • 번들 설치
  • 갈퀴 및 난간 작업

추신 : 아마 당신은 제거하고 brew install openssl다시 실행 해야합니다

Apple이 OSX에서 openssl을 제거했기 때문에 문제가 발생했습니다 (El Captain 빌드).


10
이것은 실제로 엘 캐피 탄의 수정이었습니다.
jhedstrom

명확히하기 위해, 추출 제거 / 설치 / 링크 순서는 무엇입니까
Abram

7
@Abram brew link --force openssl효과가없는 경우 . 그런 다음 할 brew uninstall openssl, brew install openssl,brew link --force openssl
itsnikolay

이것이 오늘날 Mac의 답입니다 (El Capitan, 2015-2016). 편집 : 단지 brew openssl을 강요합니다. EventMachine 버전을 지정할 필요가 없었습니다 (미들맨을 설치하고있었습니다).
Ryan Bosinger

1
나를 위해 일했습니다. 잘 했어
Kees Briggs

13
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

1
pristine대신에 install?
Ricardo Freitas

4
gem install eventmachine -- --with-cppflags=-I/usr/local/opt/openssl/include나를 위해 일했다.
Dylanthepiguy 2012 년

8

EventMachine을 다른 gem의 종속성으로 설치하는 경우 gem을 수동으로 설치할 때 올바른 버전을 지정해야합니다.

gem install eventmachine -v 1.0.5 -- --with-cppflags=-I$(brew --prefix openssl)/include

그런 다음 원래 설치하려는 gem을 설치할 수 있습니다.

gem install mailcatcher


4

한 가지 대안은 다음과 같이 전체 사용자 프로파일에 대한 번 들러 구성 항목을 추가하는 것입니다.

cd ~
bundle config build.eventmachine --with-cppflags=-I$(brew --prefix openssl)/include

홈 디렉토리에 .bundle / config 파일이 생성되어 실행시 모든 프로젝트에서 사용됩니다 bundle install.


4

이것은 나를 위해 문제를 해결했습니다.

PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig" gem install eventmachine -v "1.0.8"

출처 : https://github.com/sj26/mailcatcher/issues/254


불필요하게 복잡한 이유는 다음과 같습니다. export PKG_CONFIG_PATH = $ (brew --prefix openssl) / lib / pkgconfig # 이제 모든 패키지를 설치하거나 .bashrc에 추가하거나 사용하는 항목
Gerry Gleason

0

이것은 나를 위해 일했다-

    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

참고 :- 이 보석을 성공적으로 설치하기 전에 몇 가지 작업을 수행해야했습니다. 이것들이 당신에게 적용될 수 있으므로 여기에 나열하십시오-

1.) 회사 VPN을 종료했거나 프록시 설정을 켜야 할 수도 있습니다.

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.) 또한이 게시물에있는 답변과 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.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.