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

4

我正在使用macOS Big Sur操作系统。当我检查Ruby是否可用时,看到以下信息:

$ ruby -v
ruby 2.6.3p62

使用which命令进行检查:

$ which ruby
/usr/bin/ruby

我可以看到Ruby已经预安装在macOS上。但我被告知"不要使用系统自带的Ruby",为什么呢?

1个回答

6

不要使用系统自带的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。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接