Ruby 在OS X中运行gems时出现问题

Ruby 在OS X中运行gems时出现问题,ruby,rubygems,osx-snow-leopard,Ruby,Rubygems,Osx Snow Leopard,我正在运行Snow Leopard,并根据以下指南安装了一个定制的Ruby:。我的ruby二进制文件位于usr/local/bin/ruby中,我的gems安装在/usr/local/bin/gem中。我的gem env看起来是这样的: RUBY版本:1.8.7(2008-08-11 patchlevel 72)[universal-darwin10.0] -安装目录:/Library/Ruby/Gems/1.8 -RUBY可执行文件:/System/Library/Frameworks/RUB

我正在运行Snow Leopard,并根据以下指南安装了一个定制的Ruby:。我的ruby二进制文件位于usr/local/bin/ruby中,我的gems安装在/usr/local/bin/gem中。我的gem env看起来是这样的:

RUBY版本:1.8.7(2008-08-11 patchlevel 72)[universal-darwin10.0] -安装目录:/Library/Ruby/Gems/1.8 -RUBY可执行文件:/System/Library/Frameworks/RUBY.framework/Versions/1.8/usr/bin/RUBY -可执行目录:/usr/bin

我想我可能已经中断了安装,因为在gems上执行的所有操作都给出了错误:

错误:执行gem时。。。(错误号::EEXIST) 文件存在-/usr/local/bin/ruby

如何编辑gem环境的环境变量? 对于那些在OSX上使用ruby和gems的人来说,你使用了什么来启动和运行自己?
我正在考虑将所有东西都核化,然后重新开始。

看起来您将ruby安装到/usr/local/bin中并不是您要得到的ruby,这可能意味着/usr/local/bin/不在您的路径中。如果要运行该ruby,请尝试编辑.bash_配置文件以添加/usr/local/bin,如下所示:

导出路径=/usr/local/bin:$PATH

或者,您可以将路径添加到/etc/paths.d中的文件中,这是在OS X系统上全局添加路径的首选方法


我试过三种不同的方法,每种方法都有不同的结果。我有默认安装(/usr/bin)、手工构建的/usr/local/bin以及/opt/local/bin中的Mac端口的系统

到目前为止,最简单的方法是只使用内置的二进制文件,10.6.2上的二进制文件是ruby 1.8.7。在该方案中,gems安装在/Library/Ruby/gems中。第二个最简单的方法是MacPorts(SudoPortInstallRuby),第三个方法是您上面描述的完全源代码方法。当然,人们从源代码安装是有充分理由的,但除非您尝试运行ruby 1.9或其他版本,否则最好使用内置的ruby 1.8.7。

命令“gem env”是否不报告任何gem路径?Mine报告了许多gem路径,以及rubygems等的版本,而您的似乎没有这样做

RubyGems Environment: - RUBYGEMS VERSION: 1.3.5 - RUBY VERSION: 1.8.7 (2008-08-11 patchlevel 72) [universal-darwin10.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-10 - GEM PATHS: - /Library/Ruby/Gems/1.8 - /Users/steveweet/.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 - REMOTE SOURCES: - http://gems.rubyforge.org/ RubyGems环境: -RUBYGEMS版本:1.3.5 -RUBY版本:1.8.7(2008-08-11 patchlevel 72)[universal-darwin10.0] -安装目录:/Library/Ruby/Gems/1.8 -RUBY可执行文件:/System/Library/Frameworks/RUBY.framework/Versions/1.8/usr/bin/RUBY -可执行目录:/usr/bin -RUBYGEMS平台: -红宝石 -环球达尔文10号 -宝石路径: -/Library/Ruby/Gems/1.8 -/Users/steveweet/.gem/ruby/1.8 -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/Ruby/gems/1.8 -GEM配置: -:update_sources=>true -:verbose=>true -:benchmark=>false -:backtrace=>false -:批量_阈值=>1000 -远程来源: - http://gems.rubyforge.org/ 通过在shell启动文件中指定与gem关联的环境变量(.bashrc for bash),可以编辑这些环境变量。相关变量都列在gem网站的页面中。你需要特别注意GEM_HOME和GEM_PATH。您可以通过在shell配置文件中键入echo$GEM_HOME来检查这些设置的当前设置


我建议,此时此刻您最好的行动可能是返回到OS/X提供的默认ruby安装,然后下载并安装,然后观看

这可能有助于查看您的$PATH是什么样子。然而,如果您只是想开始运行,那么SnowLeopard附带了一个很好的ruby和gem安装。您需要自定义安装有什么原因吗?您运行了什么版本的gem?VersionTanks。我的路径是这样的:>/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/users/aegir/.gem/ruby:/usr/bin:/usr/sbin:/sbin:/usr/local/git/bin:/usr/X11/bin,所以usr/local/bin在我的路径中。但我没有想到gems会随安装而来。最有可能的是,gem环境很混乱,因为gem库位于System/library/Frameworks中,而我的ruby二进制文件位于usr/local/bin中。我可能最好只是删除那里的二进制文件,并将所有内容指向默认路径。他得到的错误似乎表明gem正在尝试向/usr/local/bin/ruby写入一些内容