我应该在Mac上使用预安装的Ruby吗?



我使用的是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。

最新更新