代码之家  ›  专栏  ›  技术社区  ›  Eimantas

虽然安装了ruby gem,但找不到它

  •  21
  • Eimantas  · 技术社区  · 16 年前

    我在这里发现了一些类似的问题,但似乎没有一个与我的情况相匹配(如果我忽略了对不起)。我的问题是:我将oauth插件gem安装到ruby gems dir中,但尝试在rails应用程序中使用它会告诉我找不到它。以下是相关命令的输出:

    安装

    % s gem install oauth-plugin
    Successfully installed oauth-plugin-0.3.14
    1 gem installed
    Installing ri documentation for oauth-plugin-0.3.14...
    Installing RDoc documentation for oauth-plugin-0.3.14...
    

    gem which oauth-plugin

    % gem which oauth-plugin
    /usr/lib/ruby/gems/1.8/gems/oauth-plugin-0.3.14/lib/oauth-plugin.rb
    

    gem env 输出:

    % gem env
    RubyGems Environment:
      - RUBYGEMS VERSION: 1.3.6
      - RUBY VERSION: 1.8.7 (2009-12-24 patchlevel 248) [i686-darwin10.2.0]
      - INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8
      - RUBY EXECUTABLE: /usr/bin/ruby
      - EXECUTABLE DIRECTORY: /usr/bin
      - RUBYGEMS PLATFORMS:
        - ruby
        - x86-darwin-10
      - GEM PATHS:
         - /usr/lib/ruby/gems/1.8
         - /Users/eimantas/.gem/ruby/1.8
      - GEM CONFIGURATION:
         - :update_sources => true
         - :verbose => true
         - :benchmark => false
         - :backtrace => true
         - :bulk_threshold => 1000
         - :gem => ["--no-ri", "--no-rdoc"]
         - :sources => ["http://gems.ruby.lt/", "http://rubygems.org/"]
      - REMOTE SOURCES:
         - http://gems.ruby.lt/
         - http://rubygems.org/
    

    ls -l /usr/lib/ruby 显示如下:

    % ls -l /usr/lib/ruby     
    lrwxr-xr-x  1 root  wheel  76 Aug 14  2009 /usr/lib/ruby -> ../../System/Library/Frameworks/Ruby.framework/Versions/Current/usr/lib/ruby
    

    而这颗宝石正处于预定位置。

    以下是rails在我尝试运行时给我的错误 $ rake spec

    Missing these required gems:
      oauth-plugin   = 0.3.14
    
    You're running:
      ruby 1.8.7.173 at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
      rubygems 1.3.6 at /Users/eimantas/.gem/ruby/1.8, /Library/Ruby/Gems/1.8, /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8
    
    Run `rake gems:install` to install the missing gems.
    

    6 回复  |  直到 10 年前
        1
  •  26
  •   Slobodan Kovacevic    16 年前

    您安装了两个不同版本的Ruby。首先是:

    /usr/bin/红宝石

    第二个是:

    /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/Ruby

    因为您的web服务器使用的是第二个Ruby版本,所以一个解决方案是使用该Ruby版本安装gem。或者,您可以告诉您的web服务器使用不同的Ruby版本-这取决于您使用的服务器,可以通过不同的方式实现。

        2
  •  3
  •   Freedom_Ben    10 年前

    试试看

    sudo update-alternatives --config ruby 
    

    选择另一个ruby版本。为我工作。

        3
  •  2
  •   tommasop    16 年前

    您以前安装过oauth吗?

    gem install oauth
    

    好像是 needed

    编辑:

    在你的

    gem env
    

    RUBY VERSION: 1.8.7 (2009-12-24 patchlevel 248) [i686-darwin10.2.0]
    

    但如果你看到错误,它说你正在运行

    ruby 1.8.7.173
    

    你指的是不同版本的ruby吗?

        4
  •  1
  •   Lolindrath    16 年前

    config.gem 'oauth-plugin' config/environment.rb 文件?

    如果是这样,试着跑步 script/console system("gem which oauth-plugin")

    可能是你的gem路径在你的rails应用程序中被弄乱了。上面的命令应该告诉您gem是否真的被rails找到了。

    如果找不到,试试看 system("gem env") 脚本/控制台 看看有没有什么东西向你扑来。这应该有助于调试。

        5
  •  0
  •   gsiener    16 年前

    require 'rubygems'
    
        6
  •  0
  •   sledgeweight    12 年前

    在Windows7上,使用rubyinstaller,我选中了第二个复选框,它使ruby在任何地方都可用,这意味着您不必配置任何指向已安装ruby版本的路径。如果您有多个开发环境,它可能会影响其他版本的ruby或其他项目。

    推荐文章