Không tìm thấy Biểu tượng Gói Ruby: _SSLv2_client_method (LoadError)


249

Tôi đã cố gắng thực hiện một số cập nhật cho openssl bằng homebrew và bằng cách nào đó tôi đã xoay sở để phá vỡ mọi thứ. Tôi không thể làm bất cứ điều gì bây giờ, đây là những gì tôi nhận được khi tôi cố gắng cài đặt gói:

$ 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 bị hỏng, vì vậy hầu như không có lý do nào để mã có SSLv2_client_method. Bạn có thể mở (các) tệp Ruby và nhận xét các tham chiếu đến các phương thức SSLv2 không? Nguyên nhân cơ bản nằm libssl/usr/local/opt/openssl/libcấu hình no-ssl2(nhưng nó không phải là vấn đề trong năm 2014).
jww

Câu trả lời:


287

Tôi chỉ sửa một vấn đề tương tự trên hệ thống của tôi. Bạn cần xây dựng lại bản cài đặt Ruby 2.1.2 và nó sẽ liên kết lại với SSL mới được cập nhật.

$ 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

Điều này xảy ra sau khi cài đặt ruby ​​1.9.3 mới qua rvm. Mac mới và một cơ sở mã cũ. Tôi có cần một phiên bản openssl khác không?
digidigo

8
@ 1217 Các lỗi liên quan đến việc không thể tìm thấy thư viện SSL và OP đã đề cập rằng gần đây họ đã nâng cấp phiên bản cài đặt openssl. Tôi đã có cùng một vấn đề với kịch bản nâng cấp tương tự; Tôi nghi ngờ việc cài đặt lại sửa chữa mọi thứ bằng cách khiến Ruby được xây dựng dựa trên các thư viện được nâng cấp (không thể tìm thấy các thư viện cũ).
Ryan Dlugosz

7
Chỉ để thêm vào điều này, nếu một người dùng boxen gặp phải điều này - tôi không thể cài đặt lại rbenv bằng các lệnh ở trên - vì vậy tôi phải gỡ cài đặt và cài đặt lại 2.1.2 bằng rbenv rbenv uninstall 2.1.2 rbenv install 2.1.2 bundle
jeffsaracco

4
Sau khi nâng cấp yosemite, tôi đã có vấn đề này. Ở trên đã làm việc, nhưng chỉ sau khi tôi chuyển hướng gcc của tôi. export CC=/usr/bin/gccĐể biết thêm thông tin: đây là vấn đề github từ rbenv đã giúp
Dan Williams

1
Nếu bạn đã cài đặt rbenv với homebrew, bạn cũng có thể cần phải brew upgrade rbenv ruby-buildnhư vậy.
Justin Tanner

185

Tôi đã có một vấn đề tương tự sau khi nâng cấp openssl. Tôi sử dụng rvm. Tôi nhìn chằm chằm bằng cách nâng cấp rvm.

$ rvm get stable

Lần sau tôi cài đặt lại 1.9.3.

rvm reinstall ruby-1.9.3-p545

Sau khi cài đặt lại, tôi chạy:

$ rvm gemset pristine

Nếu bạn thấy bất kỳ lỗi nào khi khôi phục gemet của bạn, tùy chọn tốt nhất của bạn sẽ là làm trống gemet và xây dựng lại nó.

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

Nếu bạn có nhiều viên ngọc, bạn sẽ phải lặp lại các bước này cho từng viên.


10
Điều này làm việc cho tôi. rvm khởi động xây dựng đá quý nguyên sơ tự động.
Ducain

Làm việc cho tôi trên Yosemite, tôi chỉ chạy: rvm get stablervm reinstall ruby-2.0.0
MatCarey

4
Trên Yosomite tôi gặp sự cố khi cài đặt ruby, vì nó không thể tìm đúng gccphiên bản. Tôi đã kết thúc vớiCC=/usr/bin/gcc rvm reinstall ruby-1.9.3-p551
Alexander Beletsky

@MatCarey rvm get stablevà cũng rvm reinstall ruby-2.0.0làm việc ở Mavericks. Cảm ơn.
amertkara

Những gì làm việc cho tôi được rvm get stabletheo sau rvm install ruby-2.0.0-p598(vì tôi đứng sau một vài phiên bản vá). Ngoài ra, tôi đã cập nhật .ruby-version, chạy bundlevà thoát khỏi thư mục làm việc hiện tại của tôi ( cd ..) và quay lại nó ( cd -) trước khi chạy thành công foreman start.
dùng664833

17

Có vấn đề tương tự đối với 1.9.3-p547, dưới rvm

rvm reinstall ruby-1.9.3-p547

Ruby được cài đặt lại, nhưng thất bại trong việc thiết lập gemset_pristineứng dụng vì

libv8 version 3.16.14.3 failed

đó là lý do tôi đã đạt đến điểm này ngay từ đầu. Vòng tròn thất vọng thú vị ...

cập nhật
Kiểm tra phiên bản nền tảng của bạn. Tôi có ví dụ Darwin 10.8 và điều đó không được liệt kê ở đây . Vì vậy, trừ khi phiên bản đá quý libv8 của bạn có tệp nhị phân được biên dịch sẵn cho nền tảng của bạn, nó sẽ mất một thời gian dài (dài). Đi ra ngoài ăn tối, xem phim, thư giãn ... Nếu đủ yêu cầu, có thể họ sẽ thiết lập một bản phân phối nhị phân ...


1
Tôi cũng cần hỗ trợ cho ruby ​​1.9.3 và đang sử dụng rvm, homebrewxcodev6.1.1 trên Yosemite 10.10.2. Tôi chỉ sử dụng rvm reinstall ruby-1.9.3-p394; Sau khi tổng hợp viên ruby ​​mới, RVM đã tạo ra những viên đá quý nguyên sơ, cũng như không có vấn đề gì.
Tom Harrison

Vâng, nó dựa trên phân phối nhị phân. Liên kết là ở đó để cho phép một người kiểm tra trước nếu họ sẽ nhận được phản hồi ngay lập tức hoặc tắt và thiền!
Jerome


7

Bạn có thể là một người giả như tôi, với nhiều openssl

Tôi đã có cùng một vấn đề cho 2.1.2 và câu trả lời xuất sắc của Ryan Dlugosz đã không đi đủ xa. Vấn đề của tôi là tôi đã cài đặt nhiều phiên bản openssl (Tôi nghĩ rằng tôi đã cài đặt qua brew git trong các dự án trước đó).

Tôi đã phải xóa / opt / local / bin / openssl và sau đó xây dựng lại 2.1.2.

Kiểm tra ruby ​​rbenv toàn cầu

$ rbenv global
2.1.2

Kiểm tra openssl

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

Tiêu diệt bản sao openssl

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

Xây dựng lại 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

5

Khi không giải quyết được vấn đề gì cả, tôi khuyên bạn nên xóa RVM. Và cài đặt lại RVM và Rails.

xóa RVM

Làm cách nào tôi có thể xóa RVM (Trình quản lý phiên bản Ruby) khỏi hệ thống của mình?

lắp đặt RVM, đường sắt

$ curl -L https://get.rvm.io | bash -s
$ rvm nhận được
các yêu cầu
$ rvm ổn định $ rvm cài đặt 2.0.0 --with-openssl-dir = $ HOME / .rvm / usr
$ rvm sử dụng 2.0.0 $ cập nhật đá quý - hệ thống 2.0.3
$ cài đặt gem đảo ngược 4.0.5


4

người dùng rbenv:

Nó giúp đảm bảo rằng bạn đang sử dụng đúng phiên bản ruby. Nếu bạn cài đặt lại rbenv hoặc cài đặt một viên ruby ​​mới, hãy đổi sang phiên bản ruby ​​bạn vừa cài đặt:

$ rbenv địa phương 2.1.3


1

Trong trường hợp nó có thể giúp được bất cứ ai: Tôi đã cài đặt phiên bản Ruby mới hơn (2.1.2) và trong tệp phiên bản .ruby của tôi, tôi đã tham chiếu phiên bản cũ (2.0.0-p353)

Thay đổi tệp .ruby phiên bản của tôi thành 2.1.2 đã khắc phục sự cố cho tôi.


1

Tôi đã có một vấn đề tương tự, xảy ra sau khi nâng cấp lên ruby ​​2.2.2. Tuy nhiên, môi trường của tôi có một chút khác biệt khiến các giải pháp trên không hoạt động.

Tôi đang sử dụng:

  • OSX Yosemite (10.10.4)
  • màu sắc
  • ruby-cài đặt
  • openssl (được cài đặt qua homebrew)

Các lệnh sau đã giải quyết điều này trong tình huống của tôi:

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

0

Ngoài các câu trả lời chấp nhận ở trên, bạn có thể phải nói với rbenv để sử dụng phiên bản mới được cài đặt. Ví dụ: tôi đã có phiên bản cũ trong ~ / .rbenv / phiên bản, vì vậy rbenv luôn sử dụng phiên bản cũ. Cài đặt thủ công phiên bản mới trong tệp đó (hoặc thông qua dòng lệnh) sẽ khắc phục sự cố.

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

và nếu bạn gặp rắc rối với rbenv không thấy các phiên bản mới hơn, như ai đó tôi biết đã ... chắc chắn bạn đã cập nhật ruby-build. nhiều khả năng thông qua bia.
wkhatch
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.