OS X gem执行环境

时间:2010-06-27 18:42:49

标签: ruby macos rubygems

注意:user377519(下面的回答)指出了我正确的方向。我已经在问题的底部发布了“修复”,以防你发现这个并且需要的不仅仅是“指针”

我无法弄清楚为什么对“gem env”的第二次调用与第一次调用没有相同的环境? 有什么指针吗?这真让我抓狂!!!!

$ which gem

/usr/local/bin/gem

$ / usr / local / bin / gem env

RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.7
  - RUBY VERSION: 1.8.8 (2010-06-26 patchlevel 1) [i386-darwin9.8.0]
  - INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: /usr/local/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/local/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-darwin-9
  - GEM PATHS:
     - /usr/local/lib/ruby/gems/1.8
     - /Users/pauliprice/.gem/ruby/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
     - :sources => ["http://gems.rubyforge.org/", "http://gems.github.com", "http://gems.github.com"]
  - REMOTE SOURCES:
  - http://gems.rubyforge.org/
  - http://gems.github.com
  - http://gems.github.com

$ gem env

RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.7
  - RUBY VERSION: 1.8.6 (2009-06-08 patchlevel 369) [universal-darwin9.0]
  - INSTALLATION DIRECTORY: /Library/Ruby/Gems/1.8
  - RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - universal-darwin-9
  - GEM PATHS:
     - /Library/Ruby/Gems/1.8
     - /Users/pauliprice/.gem/ruby/1.8
     - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
     - :sources => ["http://gems.rubyforge.org/", "http://gems.github.com", "http://gems.github.com"]
  - REMOTE SOURCES:
     - http://gems.rubyforge.org/
     - http://gems.github.com
     - http://gems.github.com

解决方案:

鉴于您没有(因为我没有)想要在不同版本之间切换,只需在OSX 10.5框中安装新版本,这就是如何正确安装RubyGems。

假设您构建并安装了这样的新Ruby:

./configure --prefix=/usr/local --enable-pthread
sudo make
sudo make install

编辑〜/ .bash_profile并添加此行

export PATH=/usr/local/bin:$PATH

保存并刷新终端。然后你应该像这样安装RubyGems:

下载并设置最新的rubygems

wget http://rubyforge.org/frs/download.php/70696/rubygems-1.3.7.tgz
tar -xzv http://rubyforge.org/frs/download.php/70696/rubygems-1.3.7.tgz
cd rubygems-1.3.7
sudo su
# export PREFIX=/usr/local
# export GEM_HOME=$PREFIX/lib/ruby/gems/1.8
# export RUBYLIB=$PREFIX/lib/ruby:$PREFIX/lib/site_ruby/1.8
# ruby setup.rb all —prefix=$PREFIX
exit

编辑〜/ .bash_profile并添加以下行

export PREFIX=/usr/local
export GEM_HOME=$PREFIX/lib/ruby/gems/1.8
export RUBYLIB=$PREFIX/lib/ruby:$PREFIX/lib/site_ruby/1.8

你们都很好。 刷新终端,

1 个答案:

答案 0 :(得分:0)

Ruby及其工具“非常聪明”。他们了解执行上下文,并将根据它们的起始位置查找配置。第一次执行是在系统目录之外,而后者是在您的主目录之外。

鉴于你有两个不同的版本并且你在Mac上,这意味着你必须手动或通过RVM安装Ruby。鉴于新版本不在系统目录中,我猜你试图手动安装更新版本的Ruby,现在我很困惑为什么它不适合你。您已将其安装到系统空间,但未在主目录中更新Ruby的配置。不幸的是,我没有回答如何让你离开这个位置。希望您有一些东西可以让您撤消安装。

安装不同Ruby副本的更安全的方法是使用Ruby Version Manager(RVM)。它可以在不更改系统的情况下安装多个Ruby副本。从命令行,您可以使用不同的解释器为该会话调用。因此,系统保持不变,但您可以运行JRuby,v1.9.2等

希望这会让你朝着一个方向前进。