Simbol Bundel Ruby tidak ditemukan: _SSLv2_client_method (LoadError)

249

Saya sedang berusaha melakukan beberapa pembaruan untuk openssl menggunakan homebrew dan saya entah bagaimana berhasil memecahkan semuanya. Saya tidak bisa melakukan apa-apa sekarang, inilah yang saya dapatkan ketika saya mencoba melakukan bundle install:

$ 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>'
Lenek
sumber
2
SSLv2 rusak, jadi hampir tidak ada alasan untuk memiliki kode SSLv2_client_method. Bisakah Anda membuka file Ruby dan berkomentar referensi ke metode SSLv2? Penyebab yang mendasari libssldi /usr/local/opt/openssl/libdikonfigurasi dengan no-ssl2(tetapi seharusnya tidak menjadi masalah pada tahun 2014).
jww

Jawaban:

287

Saya baru saja memperbaiki masalah serupa pada sistem saya. Anda perlu membangun kembali pemasangan Ruby 2.1.2 Anda dan itu akan menghubungkan kembali dengan SSL yang baru diperbarui.

$ 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
Ryan Dlugosz
sumber
Ini terjadi setelah instalasi baru ruby ​​1.9.3 via rvm. Mac baru dan basis kode lama. Apakah saya memerlukan versi openssl yang berbeda?
digidigo
8
@121717 Kesalahan terkait dengan tidak dapat menemukan perpustakaan SSL dan OP menyebutkan bahwa mereka baru saja memutakhirkan versi terinstal dari openssl. Saya memiliki masalah yang sama dengan skenario peningkatan yang sama; Saya curiga instal ulang perbaiki hal-hal dengan menyebabkan Ruby dibangun terhadap pustaka yang ditingkatkan (yang lama tidak dapat ditemukan).
Ryan Dlugosz
7
Hanya untuk menambah ini, jika pengguna boxen menemukan ini - saya tidak bisa mendapatkan rbenv untuk menginstal ulang menggunakan perintah di atas - jadi saya harus menghapus dan menginstal ulang 2.1.2 menggunakan rbenv rbenv uninstall 2.1.2 rbenv install 2.1.2 bundle
jeffsaracco
4
Setelah upgrade yosemite, saya mengalami masalah ini. Hal di atas berhasil, tetapi hanya setelah saya mengalihkan gcc saya. export CC=/usr/bin/gccUntuk info lebih lanjut: ini adalah masalah github dari rbenv yang membantu
Dan Williams
1
Jika Anda menginstal rbenv dengan homebrew, Anda mungkin perlu melakukannya brew upgrade rbenv ruby-buildjuga.
Justin Tanner
185

Saya memiliki masalah serupa setelah memutakhirkan openssl. Saya menggunakan rvm. Saya menatap dengan memperbarui rvm.

$ rvm get stable

Saya selanjutnya menginstal ulang 1.9.3.

rvm reinstall ruby-1.9.3-p545

Setelah menginstal ulang, saya berlari:

$ rvm gemset pristine

Jika Anda melihat ada kesalahan dalam memulihkan permata Anda, opsi terbaik Anda adalah mengosongkan permata dan membangunnya kembali.

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

Jika Anda memiliki beberapa permata, Anda harus mengulangi langkah-langkah ini untuk masing-masing.

Sandeep M
sumber
10
Ini berhasil untuk saya. rvm menggebrak bangunan permata murni secara otomatis.
Ducain
Bekerja untuk saya di Yosemite, saya hanya berlari: rvm get stabledanrvm reinstall ruby-2.0.0
MatCarey
4
Di Yosomite saya punya masalah menginstal ruby, karena tidak dapat menemukan gccversi yang tepat . Saya berakhir denganCC=/usr/bin/gcc rvm reinstall ruby-1.9.3-p551
Alexander Beletsky
@MatCarey rvm get stabledan rvm reinstall ruby-2.0.0bekerja di Mavericks juga. Terima kasih.
amertkara
Apa yang berhasil bagi saya rvm get stablediikuti oleh rvm install ruby-2.0.0-p598(karena saya berada di belakang beberapa versi tambalan). Juga, saya memperbarui .ruby-version, menjalankan bundle, dan keluar dari direktori kerja saya saat ini ( cd ..) dan kembali ke sana ( cd -) sebelum berhasil berjalan foreman start.
user664833
17

Memiliki masalah yang sama untuk 1.9.3-p547, di bawah rvm

rvm reinstall ruby-1.9.3-p547

Ruby akan diinstal ulang, tetapi gagal dalam menyiapkan gemset_pristineuntuk aplikasi karena

libv8 version 3.16.14.3 failed

itulah alasan saya sampai pada titik ini di tempat pertama. Lingkaran frustrasi yang berbahaya ...

perbarui
Periksa versi platform Anda. Saya punya misalnya Darwin 10.8 dan itu tidak tercantum di sini . Jadi, kecuali versi gem libv8 Anda memiliki biner yang sudah dikompilasi untuk platform Anda, itu akan membutuhkan waktu yang sangat lama. Pergi makan malam, nonton film, bersantai ... Jika cukup bertanya, mungkin mereka akan membuat distro biner ...

Jerome
sumber
1
Saya juga membutuhkan dukungan untuk ruby ​​1.9.3 dan saya menggunakan rvm, homebrewdan xcodev6.1.1 pada Yosemite 10.10.2. Saya hanya menggunakan rvm reinstall ruby-1.9.3-p394; setelah mengkompilasi ruby ​​baru, RVM membuat permata itu asli, juga tanpa masalah.
Tom Harrison
Ya, ini didasarkan pada distribusi biner. Tautan ada di sana untuk memungkinkan seseorang memeriksa terlebih dahulu apakah mereka akan mendapat respons langsung atau pergi dan bermeditasi!
Jerome
14

Memiliki kesalahan yang sama dan menyelesaikannya dengan brew upgrade openssl

DaveWoodall.com
sumber
5
kau harus brew link --force openssl?
kbrock
@ kbrock, tidak, saya tidak.
DaveWoodall.com
7

Anda mungkin bodoh seperti saya, dengan multiple openssl's

Saya memiliki masalah yang sama untuk 2.1.2 dan jawaban bagus Ryan Dlugosz tidak cukup jauh. Masalah saya adalah saya menginstal beberapa versi openssl (saya pikir saya sudah menginstal melalui brew dan git dalam proyek-proyek sebelumnya).

Saya harus menghapus / opt / local / bin / openssl dan kemudian membangun kembali 2.1.2.

Periksa rubi global rbenv

$ rbenv global
2.1.2

Periksa openssl

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

Bunuh duplikat openssl

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

Membangun kembali 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
Ralph Cowling
sumber
5

Ketika tidak menyelesaikan masalah sama sekali, saya sarankan menghapus RVM. Dan instal ulang RVM dan Rails.

menghapus RVM

Bagaimana saya bisa menghapus RVM (Ruby Version Manager) dari sistem saya?

menginstal RVM, Rail

$ curl -L https://get.rvm.io | bash -s
$ rvm dapatkan stabil
$ persyaratan rvm
$ rvm instal 2.0.0 --with-openssl-dir = $ HOME / .rvm / usr
$ rvm gunakan 2.0.0 $ pembaruan permata - sistem 2.0.3
$ permata instal rel --versi 4.0.5

Hajime
sumber
4

pengguna rbenv:

Ini membantu untuk memastikan bahwa Anda menggunakan ruby ​​versi yang tepat. Jika Anda menginstal ulang rbenv atau menginstal ruby ​​baru, ubah ke versi ruby ​​yang baru saja Anda instal:

$ rbenv lokal 2.1.3

dechimp
sumber
1

Seandainya itu bisa membantu siapa saja: Saya telah menginstal Ruby versi yang lebih baru (2.1.2), dan dalam file .ruby-versi saya, saya merujuk yang lama (2.0.0-p353)

Mengubah file .ruby-versi saya ke 2.1.2 memperbaiki masalah untuk saya.

lafeber
sumber
1

Saya memiliki masalah yang sama, yang terjadi setelah memutakhirkan ke ruby ​​2.2.2. Namun, lingkungan saya sedikit berbeda sehingga solusi di atas tidak berfungsi.

Saya menggunakan:

  • OSX Yosemite (10.10.4)
  • Chruby
  • install ruby
  • openssl (diinstal melalui homebrew)

Perintah berikut ini menyelesaikan ini dalam situasi saya:

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

Selain jawaban penerimaan di atas, Anda mungkin harus memberi tahu rbenv untuk menggunakan versi yang baru diinstal. Sebagai contoh, saya memiliki versi lama di ~ / .rbenv / version, jadi rbenv selalu menggunakan yang lama. Pengaturan secara manual versi baru di file itu (atau melalui baris perintah) harus memperbaiki masalah.

rbenv install -f 2.1.2
rbenv versions
rbenv global 2.1.2 //sets global version to 2.1.2
adairdavid
sumber
dan jika Anda memiliki masalah dengan rbenv tidak melihat versi yang lebih baru, seperti seseorang yang saya tahu ... pastikan Anda telah memperbarui ruby-build. kemungkinan besar melalui minuman.
wkhatch