【问题标题】:Rails "Insecure world writable dir /Library/Ruby/Gems/1.8 in PATH, mode 040777Rails “不安全的世界可写目录 /Library/Ruby/Gems/1.8 在 PATH,模式 040777
【发布时间】:2012-10-17 12:31:10
【问题描述】:

对 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

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

/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,还安装了命令行工具(如果有的话)。

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢!长话短说,今天早上我打开我的笔记本电脑,发现描述的步骤给了我一组完全不同的错误消息。可能是我做过的事情,但我完全忘记了我所做的所有调整和安装/卸载/重新安装。最终为了修复它,我用rvm implode 卸载了所有东西,然后按照你链接的那本书中的步骤进行操作(顺便说一句,看起来非常好),现在似乎一切正常。最后!!干杯
    【解决方案2】:

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

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

    【讨论】:

    • 糟糕,我意识到我在这里做了什么。我尝试了 rails g 和 rails generate 最初但它们没有工作。然后我在复制和粘贴之前输入了错误的内容! rails g 给我:/Library/Ruby/Gems/1.8/gems/bundler-1.2.1/lib/bundler/runtime.rb:199:警告:不安全的世界可写目录/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':没有要加载的文件 -- minitest/unit (LoadError)。已编辑原始问题。
    猜你喜欢
    • 1970-01-01
    • 2015-11-26
    • 2011-09-05
    • 2011-04-26
    • 2014-12-29
    • 1970-01-01
    • 2013-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多