我使用的是macOS Big Sur。当我检查Ruby是否可用时,我看到:
$ ruby -v
ruby 2.6.3p62
与which
核对:
$ which ruby
/usr/bin/ruby
我可以看到Ruby是预先安装在macOS上的。但是我被告知,&;不要使用系统Ruby。&;为什么?
不要使用系统Ruby!
以下是不使用使用Ruby开发的原因:gems的默认位置是系统Ruby目录
/Library/Ruby/Gems/2.6.0
,所以你需要超级用户来安装gems(你真的不应该改变这个文件夹)你可以使用sudo来安装gem,但这有安全风险(gem安装可能会运行恶意代码)
使用Bundler是管理gem版本和依赖项的最佳实践(项目可能使用不同的gem版本;或者一个项目可能使用不同的gem,需要不同版本的公共依赖项)
你可以用
--user-install
参数安装Bundler来设置gem目录,但这不是一个常见的做法最好使用最新版本的Ruby开始项目,系统Ruby是2.6.3
如果你有多个项目,不能一次更新它们,你需要多个Ruby版本和一个版本管理器(见我的指南安装Ruby在Mac上比较版本管理器,并展示如何安装Ruby与asdf或chruby或Homebrew)
预安装的Ruby已被Apple弃用,并可能在未来的macOS版本中消失
一些开发人员使用系统Ruby运行系统管理脚本。这很好,只要您不通过尝试更新或添加gem来改变系统Ruby即可。记住,系统Ruby是为macOS而存在的,而不是为您。对于开发,使用Homebrew或版本管理器安装Ruby。