授予路径权限

Fil*_*Fil 2 ruby mysql linux ruby-on-rails windows-10

我按照本指南,安装ruby,虽然一切都没有问题,除非我尝试运行此命令

rails new myapp -d mysql

我得到了这个错误

  run  bundle install
There was an error while trying to write to
`/home/fil/.bundle/cache/compact_index/rubygems.org.443.29b0360b937aa4d161703e6160654e47`. It is likely that you need to
grant write permissions for that path.
         run  bundle exec spring binstub --all
bundler: command not found: spring
Install missing gem executables with `bundle install`
Run Code Online (Sandbox Code Playgroud)

有什么方法可以解决这个问题吗?

Jim*_*art 5

看起来你bundle install在某个时刻(通过sudo bundle install)以root身份运行,你永远不应该这样做.sudo正如@GurmukhSingh所暗示的那样,你可以再次解决这个问题,但这只会使问题更加复杂,从安全的角度来看并不是一个好主意.

如果要查找Bundler缓存中不属于的文件fil(假设您的用户名是fil),可以运行以下命令:

find ~/.bundle/cache ! -user fil -ls
Run Code Online (Sandbox Code Playgroud)

如果它返回任何内容,那么问题可能是那些文件归root(或其他一些用户)所有; 将告诉你谁拥有它们的-ls旗帜find.

您可以删除有问题的文件并bundle install再次运行,也可以使用以下方法更改它们的所有权:

chown -R fil ~/.bundle/cache
Run Code Online (Sandbox Code Playgroud)

您可能需要检查所有文件~/.bundle而不仅仅是cachedir.

在将来,不要经常bundle install通过sudo.