[英]Issue with Ruby gems (broken?) trying to get compass to work in npm
我不是一個Ruby專家,但想知道發生了什么,因為我試圖讓指南針在節點應用程序中運行,但我的Ruby似乎已經壞了。 打字:
ruby --version
得到我:
ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-darwin13.0]
我安裝了Homebrew,之前遇到過Ruby版本的問題,但它似乎已安裝並正常工作。 但是,當我使用gem輸入請求時,我收到此錯誤:
$ gem -h
Error loading RubyGems plugin "/Users/user_dir/.rvm/gems/ruby-2.1.1@global/gems/executable-hooks-1.3.1/lib/rubygems_plugin.rb": dlopen(/Users/user_dir/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle, 9): Symbol not found: _SSLv2_client_method
Referenced from: /Users/user_dir/.rvm/rubies/ruby-2.1.1/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/user_dir/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle - /Users/user_dir/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle (LoadError)
Error loading RubyGems plugin "/Users/user_dir/.rvm/gems/ruby-2.1.1@global/gems/gem-wrappers-1.2.4/lib/rubygems_plugin.rb": dlopen(/Users/user_dir/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle, 9): Symbol not found: _SSLv2_client_method
Referenced from: /Users/user_dir/.rvm/rubies/ruby-2.1.1/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/user_dir/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle - /Users/user_dir/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle (LoadError)
RubyGems is a sophisticated package manager for Ruby. This is a
basic help message containing pointers to more information.
Usage:
gem -h/--help
gem -v/--version
gem command [arguments...] [options...]
Examples:
gem install rake
gem list --local
gem build package.gemspec
gem help install
Further help:
gem help commands list all 'gem' commands
gem help examples show some examples of usage
gem help platforms show information about platforms
gem help <COMMAND> show help on COMMAND
(e.g. 'gem help install')
gem server present a web page at
http://localhost:8808/
with info about installed gems
Further information:
http://guides.rubygems.org
我注意到對openssl的引用,但在網上找不到任何問題。
我已經嘗試在npm和RVM以及Homebrew上安裝指南針,所以,目前,我不知道正在使用哪些版本以及從哪里開始嘗試解決問題。
如果您知道問題所在,請告訴我,或者您是否需要有關我的系統的更多信息。
我看了一下:“ 找不到Ruby Bundle符號:_SSLv2_client_method(LoadError) ”和“ 加載RubyGems插件時出錯,openssl.bundle(LoadError) ”。
我沒有添加npm或節點標簽,因為我很確定這是一個Ruby問題,但是我把它留在了問題中,因為我也嘗試在那里安裝指南針。
我曾嘗試修復RVM,Homebrew等,但它仍然被打破。
你在用brew嗎?
如果是這樣, brew update
或brew upgrade
會破壞Ruby運行時,這就是我造成類似錯誤的原因。
以下為我解決了這個問題:
brew rm openssl
brew cleanup openssl
brew install openssl
rvm reinstall ruby
gem install compass
編輯:
我終於發現RVM有一個默認版本,所以每次我安裝一個新版本它都會恢復到舊版本(我猜這個有錯誤,這就是為什么我沒有注意到版本問題)。
如果你去:
~/.rvm/gems/
頂部會有一個ruby版本列表和一個默認文件夾。 點擊此頁面並輸入:
rvm --default use 2.1.5
解決了我的問題(現在...)
原版的:
我嘗試了很多不同的東西,但最終還是讓它起作用,我把這個答案分解為我認為可能對結果做出貢獻的事情列表,因為有很多東西沒有用。
我重新安裝了ruby,但因為答案(1.9.3)中的版本早於2.1.1p76我輸入了:
rvm get stable
然后:
rvm reinstall ruby
這使我保持2.1.1p76,然后:
rvm gemset pristine
將寶石升級到2.4.3
這一點很奇怪但我接着嘗試在NPM中安裝指南針並且它仍然無法運行,然后檢查我的ruby版本再次給了我2.1.5p273(除非RVM gemset pristine更新了ruby ......之間沒有升級) 。 然后我嘗試了SO答案中的mygemset代碼,但是出現了更多錯誤,所以我決定運行
gem install bundler
這似乎有效,所以我試過:
gem install compass
我曾多次嘗試但這一次有效。 它安裝了ffi-1.9.6.gem和9個寶石,我認為這些是依賴性的。
然后NPM包工作,我目前沒有任何錯誤出現在ruby中。
注意:我不會接受這個答案,因為我不知道它為什么會起作用,如果你遵循這個意識我不知道ruby,這只是為了讓指南針在NPM工作。
注意:許多答案都有rbenv
作為包管理器,我想用系統中已有的東西來解決這種情況,所以我繼續使用RVM。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.