Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在Mac OSX Snow Leopard上运行Rails时遇到的问题_Ruby On Rails_Ruby_Rubygems - Fatal编程技术网

Ruby on rails 在Mac OSX Snow Leopard上运行Rails时遇到的问题

Ruby on rails 在Mac OSX Snow Leopard上运行Rails时遇到的问题,ruby-on-rails,ruby,rubygems,Ruby On Rails,Ruby,Rubygems,更新和解决方案 之后,我终于让一切正常运行了 1.正在卸载/usr/local/…中与ruby相关的所有内容。。。以及卸载所有版本的rails。 2.以标准用户身份安装RVM,即安装在我的主目录中,而不是以root用户身份安装在/usr/local中 3.rvm安装1.8.7并设置为默认值 现在一切似乎都很好 经过几天的谷歌搜索和阅读其他人的解决方案后,我得出的结论是,雪豹无法很好地处理rails开发环境,除非您在本地控制器中通过RVM对其进行沙箱处理。我拒绝去RVM,因为我不需要管理多个rub

更新和解决方案

之后,我终于让一切正常运行了
1.正在卸载/usr/local/…中与ruby相关的所有内容。。。以及卸载所有版本的rails。
2.以标准用户身份安装RVM,即安装在我的主目录中,而不是以root用户身份安装在/usr/local中
3.rvm安装1.8.7并设置为默认值

现在一切似乎都很好

经过几天的谷歌搜索和阅读其他人的解决方案后,我得出的结论是,雪豹无法很好地处理rails开发环境,除非您在本地控制器中通过RVM对其进行沙箱处理。我拒绝去RVM,因为我不需要管理多个ruby版本

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

以下原件

经过几天的谷歌搜索、卸载和重新安装,我几乎不知所措。我试图让rails在MacOSX10.6.7上运行。我跟着。为这个问题的长度道歉

是否有人遵循了逐步卸载/重新安装过程来实现此功能?或者是故障排除建议的链接?我是否应该清理所有后续内容并迁移到RVM

常见的问题是,即使安装了gem,也无法找到gem。例如,尝试创建新的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 --
-

-

-


添加到
Gemfile

gem 'i18n'
实际上,您还应该指定确切的版本:

gem 'i18n', '0.4.2'
然后运行
捆绑安装
。但只要您的
i18n
gem将被锁定,请尝试以下操作:

bundle update i18n

这就是你的错误中写的全部内容

我会做几件事

首先从当前系统gem安装中卸载Rails>=3。这包括所有Rails依赖项。现在,您应该能够使用正常的gem安装启动
接下来安装rvm并使用rvm安装Ruby 1.9.2和Rails3。使用1.9.2 rvm处理Rails3项目。rails3和rails2的一部分不能很好地协同工作,因此您应该始终尝试将它们分开。

rvm可能是防止此类问题的最佳选择。但是,如果您实际上不需要多个ruby版本或Gemset,那么这可能会有些过分

让我试着诊断一下这个问题。如果我们能解决这个问题,那么你就不必跳过rvm环(当然,除非你愿意)

我怀疑,当您运行一些基于ruby的脚本,如“gem”、“bundle”、“rails”和“rake”时,这些脚本中的shebang行指向的是您意想不到的ruby安装

这是我诊断此类gem问题的常规清单

  • 运行“哪一个-宝石”。您是否看到多个独特的位置?如果是,请使用gem的完整路径列出gem。例如“/usr/bin/gem list”和“/usr/local/bin/gem list”。我猜你会看到其中一个列表有i18n,而另一个没有
  • 在rails、bundler和gem上运行“which”。在每个路径上运行“head-1”。ruby路径是否都匹配
  • 我的猜测是,您路径中的“rails”与您路径中的“gem”使用的ruby不同。也许您是使用预先安装的'gem'命令安装它的,因此它指向系统ruby的gem目录,而不是/usr/local。尝试重新安装rails,然后关闭并重新打开终端。然后使用上面的“which”和“head-1”确保“rails”使用的ruby与“gem”使用的ruby相同

    另一名嫌疑人是“sudo”指挥部。您可能还希望通过sudo运行“which”命令,例如sudo sh-c“which gem”。sudo可能正在运行一个预安装的脚本。
    如果有疑问,您可以运行:“sudo/usr/local/bin/gem install rails”,这样您就可以确定使用的是哪个gem命令。

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


    我想你是说“gem安装i18n”吧?Gems已经安装,bundle安装运行正常。当然,这对“rails新myapp”或“rails服务器”都没有帮助。不过,谢谢你的建议……不,我不认为他是说,如果你使用bundler,你不应该真的“gem安装”任何东西,把它放在你的gemfile中,然后再次运行bundle安装,使用rvmI的+1就是我写的:)1。添加到GEMFILE
    gem'i18n'
    ,然后安装bundle
    。你为什么不试试呢?好吧…我为没有仔细阅读而道歉。我试过了,但没用。挑战在于,我已经追踪类似这样的单一错误消息好几天了,却没有诊断根本原因。但是谢谢你的帮助,再次表示歉意。你知道吗。我认为你在bundler和Rails应用程序中使用的是不同的Ruby。尝试检查:
    哪个ruby
    哪个bundler
    哪个rake
    属于同一个ruby目录?此外,您还可以尝试重新安装Rails。您是否尝试过使用比3.0.0更新版本的Rails,看看这是否解决了您的依赖性问题?我还强烈推荐使用rvm:这里还有一个rvm风扇。rvm、rvmrc和gemsets使生活变得轻松。+1感谢您尝试以您的详细程度帮助他人。感谢您花时间编写这些详细的故障排除步骤。这就是我一直在寻找的,不管它是否对我有帮助,我相信它会帮助别人。不幸的是,我遵循了这些步骤,在没有任何运气的情况下记录了。我快要认输了,要迁移到RVM了@fl00r
    gem 'i18n'
    
    gem 'i18n', '0.4.2'
    
    bundle update i18n