在Mac OSX Snow Leopard上运行Rails的问题

时间:2011-04-14 12:45:07

标签: ruby-on-rails ruby rubygems

更新和解决方案

我终于完成了所有工作 1.卸载/ usr / local /中所有与ruby相关的内容,以及卸载所有版本的rails 2.将RVM安装为标准用户 - >即安装在我的主目录中而不是作为root用户在/ usr / local中 3. rvm install 1.8.7并设置为默认值

现在一切似乎都运转正常。

经过谷歌搜索和阅读其他人的解决方案后,我的结论是Snow Leopard只是不能很好地处理rails dev环境,除非你通过本地导演的RVM沙箱。我拒绝去RVM,因为我不需要管理多个ruby版本。

下面的一些回复以及我的代码摘录可能会为尝试排除故障的其他人提供一些有用的建议。尤其来自@ fl00r和@Kelvin:
为gem,bundle,rails,rake等运行which -a以查看可用版本。检查每个版本的ruby被调用哪个版本head -1

原文

几天谷歌搜索,卸载和重新安装后,我的智慧结束了。我正试图在Mac OS X 10.6.7上运行rails。我跟着the Hivelogic Post on this topic。为这个问题的长度道歉。

是否有人按照一步一步的卸载/重新安装流程来实现此功能?或者有关故障排除建议的链接?我应该清除this advice from 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

或者在运行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

4 个答案:

答案 0 :(得分:2)

添加到Gemfile

gem 'i18n'

实际上你也应该指定确切的版本:

gem 'i18n', '0.4.2'

然后运行bundle install。但是,只要您的i18n宝石被锁定,请尝试以下方法:

bundle update i18n

这就是你的错误中写的所有内容。

答案 1 :(得分:1)

rvm可能是防止这类问题的最佳选择。但如果你真的不需要多个ruby版本或gemsets,那可能会有点过分。

让我试着诊断一下这个问题。如果我们能够解决它,那么你就不必跳过rvm篮球(除非你当然想要)。

我怀疑当你运行其中一些基于ruby的脚本时,例如' gem','捆绑',' rails'和' rake& #39;这些脚本的shebang系列指的是你没想到的ruby安装。

这是我常用的诊断这类宝石问题的清单。

  1. 运行" -a gem"。你看到多个独特的位置吗?如果是这样,宝石列表使用gem的完整路径。例如。 " / usr / bin / gem list"和" / usr / local / bin / gem list"。我的猜测是你会看到其中一个列表有i18n而另一个列表没有。
  2. 运行"其中"在rails,bundler和gem上。跑"头-1"在每条路径上。 ruby路径是否与所有路径匹配?
  3. 我的猜测是" rails"在你的PATH中没有使用与" gem"相同的红宝石。在你的路径中。也许你安装了预装的' gem'命令所以它指向系统ruby的gem目录而不是/ usr / local。尝试重新安装rails,然后关闭并重新打开终端。然后使用"其中"和"头-1和#34;以上是为了确保" rails"使用与" gem"相同的红宝石是

    另一个嫌疑人是" sudo"命令。您可能还想运行"其中"通过sudo命令,例如sudo sh -c'哪个宝石'。 sudo可能正在运行其中一个预安装的脚本。 如果有疑问,你可以运行:" sudo / usr / local / bin / gem install rails"所以你肯定知道你正在使用哪个gem命令。

答案 2 :(得分:0)

我会做几件事。

首先从当前系统gem安装中卸载Rails> = 3。这包括所有Rails依赖项。你应该能够启动< Rails3现在使用普通的gem安装项目。

接下来安装rvm并使用rvm安装Ruby 1.9.2和Rails3。使用1.9.2 rvm来处理Rails3项目。 rails3和rails2的一部分不能很好地协同工作,所以你应该总是尝试将它们分开。

答案 3 :(得分:0)

有关使用rvm安装rails的分步说明,请参阅此堆栈问题。这是我发现的最经得起考验的方法:

Uninstall Ruby on Rails on Mac OS X 10.6