我正在使用macOS Big Sur操作系统。当我检查Ruby是否可用时,看到以下信息:
$ ruby -v
ruby 2.6.3p62
使用which
命令进行检查:
$ which ruby
/usr/bin/ruby
我可以看到Ruby已经预安装在macOS上。但我被告知"不要使用系统自带的Ruby",为什么呢?
不要使用系统自带的Ruby!
以下是为何不应该用它来进行Ruby开发的原因:
默认的gem安装目录是系统Ruby目录/Library/Ruby/Gems/2.6.0
,所以你需要超级用户权限才能安装gems(而且你真的不应该改变这个文件夹)。
你可以使用sudo安装gems,但这是一个安全风险(gems的安装可能会运行恶意代码)。
使用Bundler来管理gem版本和依赖项是最佳实践(项目可能使用不同的gem版本;或者一个项目可能使用不同的gem,需要不同版本的共同依赖项)。
你可以使用--user-install
参数安装Bundler来设置gem目录,但这不是一种常见的做法。
最好使用最新版本的Ruby来启动项目,而系统Ruby是2.6.3。
如果你有多个项目,无法同时更新它们,你将需要多个Ruby版本和一个版本管理器(请参阅我的指南在Mac上安装Ruby,其中比较了版本管理器,并展示了如何使用asdf、chruby或Homebrew安装Ruby)。
预安装的Ruby已被苹果弃用,未来的macOS版本可能会删除它。
一些开发人员将系统Ruby用于运行系统管理员脚本。只要您不试图更新或添加gems,这是可以的。请记住,系统Ruby是为macOS而设,而不是为您自己服务的。对于开发,请使用Homebrew或版本管理器安装Ruby。