授予路径权限

时间:2016-11-23 14:43:57

标签: mysql ruby-on-rails ruby linux windows-10

我正在关注这个guide,安装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`

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

1 个答案:

答案 0 :(得分:5)

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

如果您想在Bundler缓存中查找fil所拥有的文件(假设您的用户名为fil),则可以运行此文件:

find ~/.bundle/cache ! -user fil -ls

如果它返回任何内容,那么问题很可能是那些文件归root(或其他一些用户)所有; -ls的{​​{1}}标记会显示谁拥有它们。

您可以删除有问题的文件并再次运行find,或者您可以通过以下方式更改其所有权:

bundle install

您可能需要检查chown -R fil ~/.bundle/cache 中的所有文件,而不仅仅是~/.bundle目录。

将来,请不要通过cache运行bundle install