我正在使用 macOS Big Sur。当我检查 Ruby 是否可用时,我看到:
$ ruby -v
ruby 2.6.3p62
Run Code Online (Sandbox Code Playgroud)
检查which:
$ which ruby
/usr/bin/ruby
Run Code Online (Sandbox Code Playgroud)
我可以看到 macOS 上预装了 Ruby。但有人告诉我,“不要使用系统 Ruby”。为什么?
不要使用系统Ruby!
以下是不使用它进行Ruby开发的原因:
gems 的默认位置是系统 Ruby 目录/Library/Ruby/Gems/2.6.0,因此您需要成为超级用户才能安装 gems(并且您确实不应该更改此文件夹)
您可以使用 sudo 安装 gem,但这存在安全风险(gem 安装可以运行恶意代码)
使用 Bundler 是管理 gem 版本和依赖项的最佳实践(项目可能使用不同的 gem 版本;或者项目可能使用需要不同版本的公共依赖项的不同 gem)
您可以使用参数安装Bundler--user-install来设置 gem 目录,但这不是常见的做法
最好使用最新版本的 Ruby 启动项目,并且系统 Ruby 是 2.6.3
如果您有多个项目并且无法一次全部更新,则需要多个 Ruby 版本和版本管理器(请参阅我的指南在 Mac 上安装 Ruby,该指南比较了版本管理器并展示了如何使用 asdf 安装 Ruby 或矮胖或自制)
Apple 已弃用预装的 Ruby,并且可能会在未来的 macOS 版本中消失
一些开发人员使用系统 Ruby 来运行 sysadmin 脚本。没关系,只要您不通过尝试更新或添加 gem 来更改系统 Ruby。请记住,Ruby 系统是为 macOS 准备的,而不是为您准备的。对于开发,请使用 Homebrew 或版本管理器安装 Ruby。
| 归档时间: |
|
| 查看次数: |
857 次 |
| 最近记录: |