0

对 Rails 来说是全新的。昨天我花了几个小时把头撞在砖墙上,试图在我的 Mac 上正确安装所有东西。最后,我认为我已经成功了,所以我开始尝试完成本教程: http: //net.tutsplus.com/tutorials/ruby/the-intro-to-rails-screencast-i-wish-i -有/

一切顺利,直到大约 4 分钟,当我在命令行输入给定指令并收到此错误消息时。

> rails g
/Library/Ruby/Gems/1.8/gems/bundler-1.2.1/lib/bundler/runtime.rb:199: warning: Insecure world writable dir /Library/Ruby/Gems/1.8 in PATH, mode 040777
gem install minitest
/Library/Ruby/Gems/1.8/gems/turn-0.9.6/lib/turn/minitest.rb:9:in `require': no such file to load -- minitest/unit (LoadError)
    from /Library/Ruby/Gems/1.8/gems/turn-0.9.6/lib/turn/minitest.rb:9
    from /Library/Ruby/Gems/1.8/gems/turn-0.9.6/lib/turn.rb:13:in `require'
    from /Library/Ruby/Gems/1.8/gems/turn-0.9.6/lib/turn.rb:13
    from /Library/Ruby/Gems/1.8/gems/bundler-1.2.1/lib/bundler/runtime.rb:68:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.2.1/lib/bundler/runtime.rb:68:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.2.1/lib/bundler/runtime.rb:66:in `each'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.2.1/lib/bundler/runtime.rb:66:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.2.1/lib/bundler/runtime.rb:55:in `each'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.2.1/lib/bundler/runtime.rb:55:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.2.1/lib/bundler.rb:128:in `require'
    from /Applications/MAMP/htdocs/railstest/tasks/config/application.rb:13
    from /Library/Ruby/Gems/1.8/gems/railties-3.2.8/lib/rails/commands.rb:24:in `require'
    from /Library/Ruby/Gems/1.8/gems/railties-3.2.8/lib/rails/commands.rb:24
    from script/rails:6:in `require'
    from script/rails:6

我在这里看到了一些其他类似问题的帖子,这表明这与文件权限有关。即使在摆弄权限之后,我仍然无法让它工作。权限是:

/Library:               rwxr-xr-x
/Library/Ruby:          rwxr-xr-x 
/Library/Ruby/Gems:     rwxr-xr-x
/Library/Ruby/Gems/1.8: rwxrwxrwx

尝试在 Gems/1.8 上 chmod 给我一条错误消息:“无法更改 /Library/Ruby/Gems/1.8 上的文件模式:不允许操作”

那么我需要做什么呢?

我正在运行 Mac OS 10.7.5,并且我有 XCode 4.5.1,还安装了命令行工具,如果有的话。

4

2 回答 2

1

我不能承认自己是 Rails 专家,但严格从 UNIX 方面来看,1.8 目录是全局可写的。rwxrwxrwx 部分意味着所有者、组和其他人可以读取 (r)、写入 (w) 和执行 (x) 该目录中的任何文件。所以,我不能保证这会奏效,因为这里可能存在更根深蒂固的问题,但请尝试输入sudo chmod og-w /Library/Ruby/Gems/1.8. 这将剥夺“组”和“其他”用户写入目录的能力;因此,它将不再是“世界可写”的,因此权限应显示为 rwxr-xr-x。sudo另外,如果您在尝试之前没有输入chmod以前,这可能是您无法更改权限的错误,因为您正在尝试更改系统目录的权限。对不起,如果我觉得我很迂腐;我只是想确保其他可能遇到此背景可能较少的人也能理解。

如果这不起作用,还有一些其他解决方案可能适用于这个问题。如果没有别的,根据那里给出的答案之一,我确实建议使用 rvm,因为它会使 OS X 附带的系统副本保持完整,这也将防止系统更新造成任何可能的破坏。

最后,如果您还没有,请查看此网站。这是作者本人免费提供的本书全文。我自己并没有超过安装阶段,但是按照这些说明,我发现它非常轻松。

于 2012-10-27T18:20:46.757 回答
0

我认为该警告实际上与您遇到的问题没有任何关系。rails可执行文件无法识别该命令,generator因为正确的命令是generate.

您也可以键入rails g作为快捷方式。

于 2012-10-27T13:21:10.450 回答