簡體   English   中英

Ruby gems的問題(破碎?)試圖讓指南針在npm中工作

[英]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 updatebrew 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

解決了我的問題(現在...)

原版的:

我嘗試了很多不同的東西,但最終還是讓它起作用,我把這個答案分解為我認為可能對結果做出貢獻的事情列表,因為有很多東西沒有用。

這個對我發現的SO問題的回答讓我走上了這條道路。

我重新安裝了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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM