Ruby on rails 铁路";路径中的不安全世界可写目录/Library/Ruby/Gems/1.8,模式040777

Ruby on rails 铁路";路径中的不安全世界可写目录/Library/Ruby/Gems/1.8,模式040777,ruby-on-rails,Ruby On Rails,对Rails来说是全新的。昨天我花了好几个小时的时间把头撞在砖墙上,试图在我的Mac电脑上正确安装所有东西。最后,我想我已经成功了,所以我开始尝试完成本教程: 一切都进展顺利,直到大约4分钟,我在命令行输入给定的指令并得到这个错误消息 > rails g /Library/Ruby/Gems/1.8/gems/bundler-1.2.1/lib/bundler/runtime.rb:199: warning: Insecure world writable dir /Library/Rub

对Rails来说是全新的。昨天我花了好几个小时的时间把头撞在砖墙上,试图在我的Mac电脑上正确安装所有东西。最后,我想我已经成功了,所以我开始尝试完成本教程:

一切都进展顺利,直到大约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和命令行工具,如果有任何问题的话。

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


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

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

如果这不起作用,还有一些其他的解决方案可能会起作用。如果没有其他问题的话,根据这里给出的答案之一,我建议使用rvm,因为它会使OSX附带的系统副本保持完整,这也将防止系统更新可能导致的任何损坏


最后,检查一下你是否还没有。这本书的全文由作者本人免费提供。我自己还没有过安装阶段,但按照这些说明进行操作,我发现它非常轻松。

Oops,我意识到我在这里做了什么。我最初尝试过rails g和rails generate,但都不起作用。然后我在这里复制和粘贴之前输入了错误的内容!rails g为我提供了:/Library/Ruby/Gems/1.8/Gems/bundler-1.2.1/lib/bundler/runtime.rb:199:warning:unsecure-world-writable dir/Library/Ruby/Gems/1.8路径模式040777 gem-install-minitest/Library/Ruby/Gems/1.8/Gems/turn-0.9.6/lib/turn/minitest.rb:9:in“require”:没有这样的文件要加载——minitest/unit(LoadError)。已编辑了原始问题。谢谢!长话短说,今天早上我打开笔记本电脑,发现上面描述的步骤给了我一组完全不同的错误信息。可能是我做了什么,但我已经完全忘记了我所做的所有调整和安装/卸载/重新安装。最终为了修复它,我卸载了所有带有
rvm introde
的东西,然后按照你链接的那本书中的步骤进行操作(顺便说一句,这本书看起来很不错),现在看起来一切都正常了。最后干杯