Tot*_*oro 5 ruby macos gem install
我不是一个Ruby专家,但想知道发生了什么,因为我试图让指南针在节点应用程序中运行,但我的Ruby似乎已经坏了.打字:
ruby --version
Run Code Online (Sandbox Code Playgroud)
得到我:
ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-darwin13.0]
Run Code Online (Sandbox Code Playgroud)
我安装了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
Run Code Online (Sandbox Code Playgroud)
我注意到对openssl的引用,但在网上找不到任何问题.
我已经尝试在npm和RVM以及Homebrew上安装指南针,所以,目前,我不知道正在使用哪些版本以及从哪里开始尝试解决问题.
如果您知道问题所在,请告诉我,或者您是否需要有关我的系统的更多信息.
我看了一下:" 找不到Ruby Bundle符号:_SSLv2_client_method(LoadError) "和" 加载RubyGems插件时出错,openssl.bundle(LoadError) ".
我没有添加npm或节点标签,因为我很确定这是一个Ruby问题,但是我把它留在了问题中,因为我也尝试在那里安装指南针.
我曾尝试修复RVM,Homebrew等,但它仍然被打破.
sin*_*469 16
你在用brew吗?
如果是这样,brew update或brew upgrade打破Ruby运行时,这是导致我类似错误的原因.
以下为我解决了这个问题:
brew rm openssl
brew cleanup openssl
brew install openssl
rvm reinstall ruby
gem install compass
Run Code Online (Sandbox Code Playgroud)
编辑:
我终于发现RVM有一个默认版本,所以每次安装新版本时它都会恢复到旧版本(我猜这个版本有错误,这就是我没注意到版本问题的原因).
如果你去:
~/.rvm/gems/
Run Code Online (Sandbox Code Playgroud)
顶部会有一个ruby版本列表和一个默认文件夹.点击此页面并输入:
rvm --default use 2.1.5
Run Code Online (Sandbox Code Playgroud)
解决了我的问题(现在...)
原版的:
我尝试了很多不同的东西,但最终还是让它起作用,我把这个答案分解为我认为可能对结果做出贡献的事情清单,因为有很多东西没有用.
我重新安装了ruby,但因为答案(1.9.3)中的版本早于2.1.1p76我输入了:
rvm get stable
Run Code Online (Sandbox Code Playgroud)
然后:
rvm reinstall ruby
Run Code Online (Sandbox Code Playgroud)
这使我保持2.1.1p76,然后:
rvm gemset pristine
Run Code Online (Sandbox Code Playgroud)
将宝石升级到2.4.3
这一点很奇怪但我接着尝试在NPM中安装指南针并且它仍然无法运行,然后检查我的ruby版本再次给了我2.1.5p273(除非RVM gemset pristine更新了ruby ......之间没有升级) .然后我尝试了SO答案中的mygemset代码,但是出现了更多错误,所以我决定运行
gem install bundler
Run Code Online (Sandbox Code Playgroud)
这似乎有效,所以我试过:
gem install compass
Run Code Online (Sandbox Code Playgroud)
我曾多次尝试,但这一次有效.它安装了ffi-1.9.6.gem和9个宝石,我认为这些是依赖性的.
然后NPM包工作,我目前没有任何错误出现在ruby中.
注意:我不会接受这个答案,因为我不知道它为什么会起作用,如果你按照这个意识我不知道ruby,这只是为了让指南针在NPM工作.
注意:许多答案rbenv都是作为一个包管理器,我想用系统中已经存在的内容来解决这种情况,所以我继续使用RVM.
| 归档时间: |
|
| 查看次数: |
3813 次 |
| 最近记录: |