我正在关注这个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`
有什么方法可以解决这个问题吗?
答案 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
。