루비 번들 기호를 찾을 수 없음 : _SSLv2_client_method (LoadError)


249

homebrew를 사용하여 openssl에 대한 업데이트를 시도하고 있었고 어떻게 든 모든 것을 깨뜨 렸습니다. 나는 지금 아무것도 할 수 없다. 이것은 번들 설치를 시도 할 때 얻는 것이다.

$ bundle install
/Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in    `require': dlopen(/Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle, 9): Symbol not found: _SSLv2_client_method (LoadError)
Referenced from: /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle
Expected in: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
in /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle - /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/openssl.rb:17:in `<top (required)>'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/security.rb:11:in `<top (required)>'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/package.rb:43:in `<top (required)>'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/dependency_installer.rb:3:in `<top (required)>'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/installer.rb:2:in `<top (required)>'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/cli/install.rb:78:in `run'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/cli.rb:146:in `install'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/vendor/thor/command.rb:27:in `run'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/vendor/thor/invocation.rb:121:in `invoke_command'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/vendor/thor.rb:363:in `dispatch'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/vendor/thor/base.rb:440:in `start'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/cli.rb:9:in `start'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/bin/bundle:20:in `block in <top (required)>'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/friendly_errors.rb:5:in `with_friendly_errors'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/bin/bundle:20:in `<top (required)>'
    from /Users/asServer/.rbenv/versions/2.1.2/bin/bundle:23:in `load'
    from /Users/asServer/.rbenv/versions/2.1.2/bin/bundle:23:in `<main>'

2
SSLv2가 손상되었으므로 코드를 가질 이유가 거의 없습니다 SSLv2_client_method. Ruby 파일을 열고 SSLv2 메소드에 대한 참조를 주석 처리 할 수 ​​있습니까? 근본적인 원인은 다음 libssl과 같이 /usr/local/opt/openssl/lib구성되었습니다 no-ssl2(2014 년에는 문제가되지 않습니다).
jww

답변:


287

내 시스템에서 비슷한 문제를 해결했습니다. Ruby 2.1.2 설치를 다시 빌드해야하며 새로 업데이트 된 SSL과 다시 연결됩니다.

$ rbenv install 2.1.2
rbenv: /Users/ryan/.rbenv/versions/2.1.2 already exists
continue with installation? (y/N) y
Downloading ruby-2.1.2.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/f22a6447811a81f3c808d1c2a5ce3b5f5f0955c68c9a749182feb425589e6635
Installing ruby-2.1.2...
Installed ruby-2.1.2 to /Users/ryan/.rbenv/versions/2.1.2

이것은 rvm을 통해 루비 1.9.3을 새로 설치 한 후에 발생합니다. 새로운 Mac과 오래된 코드 기반. 다른 버전의 openssl이 필요합니까?
digidigo

8
@ twelve17 오류는 SSL 라이브러리를 찾을 수 없다는 것과 관련이 있으며 OP는 최근에 설치된 버전의 openssl을 업그레이드했다고 언급했습니다. 동일한 업그레이드 시나리오에서 동일한 문제가 발생했습니다. 업그레이드 된 라이브러리에 대해 Ruby가 빌드되도록하여 재설치로 인해 문제가 해결 된 것 같습니다 (이전 라이브러리는 찾을 수 없음).
Ryan Dlugosz

7
회양목 사용자가이 건너 오면 그냥이에 추가 - 나는 위의 명령을 사용하여 다시 설치 rbenv 가져올 수 없습니다 - 나는 제거하고 rbenv 사용하여 2.1.2를 다시 설치했다, 그래서 rbenv uninstall 2.1.2 rbenv install 2.1.2 bundle
jeffsaracco

4
요세미티 업그레이드 후이 문제가 발생했습니다. 위의 내용은 효과가 있었지만 gcc를 리디렉션 한 후에 만 ​​가능합니다. export CC=/usr/bin/gcc자세한 정보 : 여기 rbenv의 github 문제가 도움이되었습니다.
Dan Williams

1
homebrew와 함께 rbenv를 설치 한 경우 brew upgrade rbenv ruby-build에도 필요할 수 있습니다.
저스틴 태너

185

openssl을 업그레이드 한 후 비슷한 문제가 발생했습니다. rvm을 사용합니다. rvm을 업그레이드하여 응시했습니다.

$ rvm get stable

다음에 1.9.3을 다시 설치했습니다.

rvm reinstall ruby-1.9.3-p545

다시 설치 한 후 다음을 실행했습니다.

$ rvm gemset pristine

gemset을 복원하는 중 오류가 발생하면 가장 좋은 방법은 gemset을 비우고 다시 빌드하는 것입니다.

rvm gemset use mygemset
rvm gemset empty mygemset
gem install bundler
bundle install

보석 세트가 여러 개인 경우 각 보석 세트에 대해이 단계를 반복해야합니다.


10
이것은 나를 위해 일했습니다. rvm은 gemset pristine 빌드를 자동으로 시작했습니다.
Ducain

요세미티에 나를 위해 일한, 난 그냥 달렸다 : rvm get stablervm reinstall ruby-2.0.0
MatCarey

4
Yosomite에서 올바른 gcc버전 을 찾을 수 없기 때문에 루비를 설치하는 데 문제가있었습니다 . 내가 함께 끝났다CC=/usr/bin/gcc rvm reinstall ruby-1.9.3-p551
알렉산더 Beletsky

@MatCarey rvm get stablervm reinstall ruby-2.0.0Mavericks에서도 일했습니다. 감사.
amertkara

나를 위해 일한 것은 rvm get stable그 뒤에 나옵니다 rvm install ruby-2.0.0-p598(몇 가지 패치 버전이 있기 때문에). 또한, 나는 성공적으로 실행하기 전에 현재 작업 디렉토리를 업데이트 .ruby-version, 실행 bundle및 종료하고 ( cd ..) 종료 했습니다 ( cd -) foreman start.
user664833

17

rvm에서 1.9.3-p547에 대해 동일한 문제가 있습니다.

rvm reinstall ruby-1.9.3-p547

Ruby가 다시 설치되지만 gemset_pristine응용 프로그램에 대한 설정에 실패합니다.

libv8 version 3.16.14.3 failed

이것이 처음부터이 시점에 도달 한 이유입니다. 악순환 좌절 원 ...

업데이트
플랫폼 버전을 확인하십시오. 예를 들어 Darwin 10.8이 있는데 여기에 나열되지 않았습니다 . 따라서, 당신의 libv8 gem 버전이 당신의 플랫폼을 위해 미리 컴파일 된 바이너리를 가지고 있지 않다면, 오랜 시간이 걸릴 것입니다. 저녁 식사, 영화, 외출을 위해 외출 ... 충분히 물어 보면 아마도 이진 배포판을 설정할 것입니다 ...


1
또한 루비 1.9.3에 대한 지원이 필요 하며 Yosemite 10.10.2에서 rvm, homebrewxcodev6.1.1을 사용 하고 있습니다. 나는 단지 사용했다 rvm reinstall ruby-1.9.3-p394; 새로운 루비를 컴파일 한 후 RVM은 문제없이 보석을 깨끗하게 만들었습니다.
Tom Harrison

예, 이진 배포를 기반으로합니다. 그들이 즉각적인 반응을 얻거나 나가서 명상 할 것인지 먼저 확인할 수 있도록 링크가 있습니다!
Jerome


7

여러 개의 openssl이있는 나 같은 독사 일 수 있습니다.

나는 2.1.2와 같은 문제를 겪었고 Ryan Dlugosz의 훌륭한 대답은 충분하지 않았습니다. 내 문제는 내가 (내가 생각하는 내가 통해 설치했던 OpenSSL을 여러 버전이 설치되어 있다고했다 brew git 이전 프로젝트에서).

/ opt / local / bin / openssl을 삭제 한 다음 2.1.2를 다시 빌드해야했습니다.

글로벌 rbenv 루비 확인

$ rbenv global
2.1.2

openssl 확인

$ which -a openssl
/opt/local/bin/openssl
/opt/local/bin/openssl
/usr/bin/openssl

중복 openssl 제거

$ sudo rm -rf /opt/local/bin/openssl

재 구축 2.1.2

$ rbenv install -f 2.1.2
Downloading openssl-1.0.1g.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/53cb818c3b90e507a8348f4f5eaedb05d8bfe5358aabb508b7263cc670c3e028
Installing openssl-1.0.1g...
Installed openssl-1.0.1g to /Users/globber/.rbenv/versions/2.1.2

Downloading ruby-2.1.2.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/f22a6447811a81f3c808d1c2a5ce3b5f5f0955c68c9a749182feb425589e6635
Installing ruby-2.1.2...
Installed ruby-2.1.2 to /Users/globber/.rbenv/versions/2.1.2


4

rbenv 사용자 :

올바른 버전의 루비를 사용하고 있는지 확인하는 데 도움이됩니다. rbenv를 다시 설치하거나 새 루비를 설치하는 경우 방금 설치 한 루비 버전으로 변경하십시오.

$ rbenv 로컬 2.1.3


1

누군가에게 도움이 될 수있는 경우 : 최신 버전의 Ruby (2.1.2)가 설치되어 있고 .ruby-version 파일에서 이전 버전 (2.0.0-p353)을 참조했습니다.

내 .ruby 버전 파일을 2.1.2로 변경하면 문제가 해결되었습니다.


1

루비 2.2.2로 업그레이드 한 후에 비슷한 문제가 발생했습니다. 그러나 내 환경이 약간 다르기 때문에 위의 솔루션이 작동하지 않습니다.

나는 사용하고있다 :

  • OSX 요세미티 (10.10.4)
  • 클로 비
  • 루비 설치
  • openssl (homebrew를 통해 설치)

내 상황에서 다음 명령 으로이 문제를 해결했습니다.

> sudo ruby-install -r /opt/rubies ruby 2.2.2 -- --with-openssl-dir=/usr/local/opt/openssl
> gem install bundler
> bundler install

0

위의 승인 응답 외에도 rbenv에 새로 설치된 버전을 사용하도록 지시해야 할 수도 있습니다. 예를 들어 ~ / .rbenv / version에 이전 버전이 있었기 때문에 rbenv는 항상 이전 버전을 사용했습니다. 해당 파일 또는 명령 줄을 통해 새 버전을 수동으로 설정하면 문제가 해결됩니다.

rbenv install -f 2.1.2
rbenv versions
rbenv global 2.1.2 //sets global version to 2.1.2

rbenv에 문제가있는 경우 내가 아는 누군가와 같이 이후 버전을 볼 수 없습니다 ... 루비 빌드를 업데이트했는지 확인하십시오. 양조를 통해 가장 가능성이 높습니다.
wkhatch
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.