Rails“不安全世界可写dir /Library/Ruby/Gems/1.8 in PATH,模式040777

时间:2012-10-27 13:16:20

标签: ruby-on-rails

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

一切顺利,直到大约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

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

/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,如果有任何重要的话,也安装了命令行工具。

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

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

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