在 Big Sur 上,当在 Rails 项目中运行 rspec 等 gem 软件包时,可能会遇到 LoadError,提示找不到 rspec - etc。这是因为 Big Sur 更改了默认的 Ruby 版本,而大多数 Ruby gem 软件包都是安装在默认的 Ruby 环境中的。为了解决这个问题,可以尝试以下两种方法之一:
使用 rbenv 管理 Ruby 环境,安装并使用可行的 Ruby 版本。可以按照以下步骤安装 rbenv 和所需的 Ruby 版本:
a. 在终端中运行以下命令以安装 Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
b. 在终端中运行以下命令以安装 rbenv:
brew install rbenv
c. 安装所需的 Ruby 版本(例如 2.7.2):
rbenv install 2.7.2
d. 将 Ruby 版本设置为项目所需的版本:
rbenv local 2.7.2
更新 gem 路径以在默认的 Ruby 环境中找到 rspec - etc。可以按照以下步骤更新 gem 路径:
a. 运行以下命令以查找默认 Ruby gem 路径:
gem env
b. 将输出中的 GEM PATHS
复制到剪贴板。例如,可能会看到类似以下内容的输出:
GEM PATHS: - /Library/Ruby/Gems/2.6.0 - /Users/username/.gem/ruby/2.6.0 - /usr/local/lib/ruby/gems/2.6.0
c. 在项目目录中创建一个名为 .ruby-version
的文件,并将所需的 Ruby 版本(例如 2.7.2)添加到该文件中:
echo "2.7.2" > .ruby-version
d. 在项目目录中创建一个名为 .env
的文件,并将以下内容添加到该文件中:
PATH="/usr/local/lib/ruby/gems/2.7.0/bin:$PATH"
e. 关闭并重新启动您的终端以使更改生