问题描述
|
更新和解决方案
我终于在一切之后工作了
1.卸载/ usr / local / ...中所有与ruby相关的内容,以及卸载所有版本的rails。
2.以标准用户身份安装RVM->即安装在我的主目录中,而不是以root身份在/ usr / local中安装
3. rvm install 1.8.7并设置为默认值
现在一切似乎都正常。
经过数天的搜查和阅读有关其他人的解决方案的结论是,除非您通过本地总监中的RVM对其进行沙箱处理,否则SNow Leopard不能很好地处理Rails开发环境。我拒绝使用RVM,因为我不需要管理多个ruby版本。
下面的一些响应以及我对粘贴的代码摘录可能为其他尝试进行故障排除的人提供一些有用的建议。特别是@ fl00r和@Kelvin:
对宝石,捆绑包,铁轨,耙子等运行“ 0”以查看可用版本。检查是否调用了每个版本带有
head -1
的红宝石版本。
下方原稿
经过数天的谷歌搜索,卸载和重新安装后,几乎达到了我的目的。我正在尝试在Mac OS X 10.6.7上运行Rails。我关注《 Hivelogic帖子》。抱歉,这个问题的长度。
有没有人按照分步卸载/重新安装过程进行操作?或有关故障排除建议的链接?我是否应该按照Chad Wooley的建议清理所有内容并迁移到RVM?
常见主题是与即使安装了宝石也找不到宝石有关的错误。例如,尝试创建一个新的Rails应用程序:
kevindewalt@new-host-4:~/Documents$ $ rails new blog
You don\'t have i18n installed in your application. Please add it to your Gemfile and run bundle install
或运行捆绑安装后在另一台计算机上运行的现有应用程序:
kevindewalt@new-host-4:~/Documents/ClaimAway$ (master) $ rake db:setup
(in /Users/kevindewalt/Documents/ClaimAway)
Could not find i18n-0.4.2 in any of the sources
Try running `bundle install`.
kevindewalt@new-host-4:~/Documents/ClaimAway$ (master) $ rails s
/usr/local/lib/ruby/gems/1.8/gems/actionpack-3.0.0/lib/action_dispatch.rb:35:in `require\': no such file to load --
--
kevindewalt@new-host-4:~/Documents$ $ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 1.7.2
- RUBY VERSION: 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin10.7.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-10
- GEM PATHS:
- /usr/local/lib/ruby/gems/1.8
- /Users/kevindewalt/.gem/ruby/1.8
- GEM CONfigURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/
--
kevindewalt@new-host-4:~/Documents$ $ echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/local/MysqL/bin:/opt/local/bin:/opt/local/sbin:/usr/local/git/bin:/usr/local/bin:/usr/local/sbin:/usr/local/MysqL/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
--
kevindewalt@new-host-4:~/Documents$ $ which -a ruby
/usr/local/bin/ruby
/usr/local/bin/ruby
/usr/bin/ruby
/usr/local/bin/ruby
解决方法
加到
Gemfile
gem \'i18n\'
实际上,您还应该指定确切的版本:
gem \'i18n\',\'0.4.2\'
然后运行bundle install
。但是,到目前为止,您的i18n
宝石将被锁定,请尝试以下操作:
bundle update i18n
这就是您的错误中所写的全部内容。
,rvm可能是防止此类问题的最佳选择。但是,如果您实际上不需要多个红宝石版本或宝石集,则可能会过大。
让我尝试诊断问题。如果我们能够解决问题,那么您不必跳过rvm箍(当然,除非您愿意)。
我怀疑当您运行某些基于ruby的脚本时,例如\'gem \',\'bundle \',\'rails \'和\'rake \',这些脚本的shebang行指向的是ruby安装你没想到的。
这是我通常诊断此类宝石问题的清单。
运行\“ which -a gem \”。您看到多个唯一的位置吗?如果是这样,请使用宝石的完整路径列出宝石。例如。 \“ / usr / bin / gem列表\”和\“ / usr / local / bin / gem列表\”。我的猜测是,您会看到其中一个列表包含i18n,而另一个列表没有。
在导轨,捆绑器和gem上运行\“ which \”。在每个路径上运行\“ head -1 \”。红宝石路径是否全部匹配?
我的猜测是,PATH中的\“ rails \”与PATH中\“ gem \”使用的红宝石不同。也许是使用预安装的\'gem \'命令安装的,所以它指向系统ruby \的gem目录,而不是/ usr / local。尝试重新安装滑轨,然后关闭并重新打开终端。然后,使用上方的\“ which \”和\“ head -1 \”来确保\“ rails \”使用与\“ gem \”相同的红宝石。
另一个可疑的是\“ sudo \”命令。您可能还想通过sudo运行\“ which \”命令,例如sudo sh -c \'哪个宝石\'。 sudo可能正在运行预安装的脚本之一。
如有疑问,可以运行:\“ sudo / usr / local / bin / gem install rails \”,以便确定使用的是哪个gem命令。
,我会做几件事。
首先从当前的系统gem安装中卸载Rails> = 3。这包括所有Rails依赖项。您现在应该可以使用常规的gem安装启动