如果你正在读这篇文章,你可能一直试图在你的Mac上安装一个Ruby gem(如Rails、Jekyll或cocoapods),但你得到了这个写权限错误:
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory
这是人们最常遇到的错误之一。对于你试图在尚未为Ruby开发正确配置的Mac上安装的任何宝石,你都会得到这个错误。
苹果公司在所有Mac上预装了Ruby,而宝石的默认安装位置是在/Library/Ruby/Gems/2.6.0
。然而,该目录是不能被修改的,这就是为什么苹果不给你写它的权限。
这里还有一些你不应该使用系统红宝石的原因。
如果你在阅读这篇文章之前试图寻找解决方案,你可能会遇到有人告诉你使用sudo
来安装宝石。不幸的是,尽管你可能经常看到它,但这是个坏建议。阅读我的文章,了解为什么你永远不应该使用sudo来安装宝石。
如果你听从了这个建议,你可能遇到了这个其他的错误:
ERROR: Failed to build gem native extension.
那么,在Mac上安装gems的正确方法是什么?
虽然在Mac上安装宝石有多种方法,但真正值得推荐的只有一种方法:通过使用版本管理器安装独立的Ruby版本。
我强烈推荐使用Ruby管理器,因为它允许你同时安装多个版本的Ruby,并能在它们之间轻松切换。与其他解决方案相比,这将为你省去很多麻烦和混乱。
在过去的十年里,我已经帮助成千上万的人在他们的Mac上设置了Ruby。从干净的Mac到最隐蔽的问题,我都见过并解决了。而最可靠的解决方案是使用一个版本管理器,特别是chruby
。