mac 上有两个不同的 ruby 版本?
Two different ruby versions on mac?
我正在本地 rails 应用程序上设置一个简单的 ruby。看来我在 mac 上有两个不同版本的 ruby,我只想使用一个。当我 运行 bundle install
时,它显示 Your Ruby version is 2.7.1, but your Gemfile specified 2.6.3
。然后,我将 gemfile 中的行 ruby '2.6.3'
更改为 ruby '2.7.1'
。有了这个 运行 bundle install
就可以了。但是,当我 运行 rails server
它说 Your Ruby version is 2.6.3, but your Gemfile specified 2.7.1
.
为什么它对我的 Ruby 版本说两个不同的值?
如何让它只使用一个版本的 Ruby?
如果相关,我在 mac 上并使用自制软件安装 ruby。如果我在终端中 运行 ruby -v
它会显示 ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin19]
。我不确定为什么它说我有 ruby 2.6.3.
有不同的版本,因为 Mac OSX 已经默认包含一个系统脚本 (2.6)。 Homebrew 安装另一个永远不会覆盖 o 重新安装系统范围版本的版本。
您正在寻找“Ruby 版本管理器”,这些工具允许您安装和使用不同版本的 Ruby,甚至每个项目。
流行的是RVM和rbenv。就个人而言,我选择 rbenv 我认为这是两者中使用最广泛的。使用示例:
# Install ruby 2.7
rbenv install 2.7.1
# Make ruby 2.7 the default version
$ rbenv global 2.7.1
# Or make 2.7 the default versión only on a specific project
$ cd myproject
$ rbenv local 2.7.1
# this create a ".ruby-version" file
此网页始终提供设置 Ruby 环境的最新且易于使用的教程,具体取决于 OS 和版本。
您安装了两个不同版本的 Ruby,因为 MacOS 本身带有标准安装的 Ruby。
您还有 rails
指向 Ruby 的系统版本。该版本通常在 /usr/bin/ruby
下。 Ruby 的 Homebrew 安装版本(这是你想要的)位于 /usr/local/bin/ruby
下,除非你指定了一个完全不同的根路径来安装你的 brew 包。
运行 brew config
将为您提供有关 Homebrew 配置的简短数据列表。其中有一个名为 HOMEBREW_PREFIX
的环境变量,它看起来应该是这样的:
$ brew config
....
HOMEBREW_PREFIX: /usr/local
....
我建议首先将 /usr/local/bin
放在您的 PATH
环境变量上,这样您就可以通过 CLI 轻松使用您的 brew 包:
export PATH="/usr/local/bin:$PATH"
您可能还想为您正在使用的 shell 设置以下环境变量(给出的示例):
RUBY_ENGINE=ruby
RUBY_VERSION=2.7.1
GEM_ROOT=/usr/local/etc/ruby-2.7.1/lib/ruby/gems/2.7.1
(GEM_HOME
的别名)
gem env
提供了大量有关如何配置 Gems 的重要信息。
我遇到了这个确切的问题,并设法通过 运行 这个命令修复它:
CFLAGS="-Wno-error=implicit-function-declaration" rbenv install 2.6.7
注意 - 我需要那个版本 (2.6.7) 请将其更改为您需要的版本
我在这个博客 post 此处找到了这个 - https://dev.to/rbazinet/fix-installation-of-ruby-using-rbenv-on-macos-big-sur-3432
我正在本地 rails 应用程序上设置一个简单的 ruby。看来我在 mac 上有两个不同版本的 ruby,我只想使用一个。当我 运行 bundle install
时,它显示 Your Ruby version is 2.7.1, but your Gemfile specified 2.6.3
。然后,我将 gemfile 中的行 ruby '2.6.3'
更改为 ruby '2.7.1'
。有了这个 运行 bundle install
就可以了。但是,当我 运行 rails server
它说 Your Ruby version is 2.6.3, but your Gemfile specified 2.7.1
.
为什么它对我的 Ruby 版本说两个不同的值?
如何让它只使用一个版本的 Ruby?
如果相关,我在 mac 上并使用自制软件安装 ruby。如果我在终端中 运行 ruby -v
它会显示 ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin19]
。我不确定为什么它说我有 ruby 2.6.3.
有不同的版本,因为 Mac OSX 已经默认包含一个系统脚本 (2.6)。 Homebrew 安装另一个永远不会覆盖 o 重新安装系统范围版本的版本。
您正在寻找“Ruby 版本管理器”,这些工具允许您安装和使用不同版本的 Ruby,甚至每个项目。
流行的是RVM和rbenv。就个人而言,我选择 rbenv 我认为这是两者中使用最广泛的。使用示例:
# Install ruby 2.7
rbenv install 2.7.1
# Make ruby 2.7 the default version
$ rbenv global 2.7.1
# Or make 2.7 the default versión only on a specific project
$ cd myproject
$ rbenv local 2.7.1
# this create a ".ruby-version" file
此网页始终提供设置 Ruby 环境的最新且易于使用的教程,具体取决于 OS 和版本。
您安装了两个不同版本的 Ruby,因为 MacOS 本身带有标准安装的 Ruby。
您还有 rails
指向 Ruby 的系统版本。该版本通常在 /usr/bin/ruby
下。 Ruby 的 Homebrew 安装版本(这是你想要的)位于 /usr/local/bin/ruby
下,除非你指定了一个完全不同的根路径来安装你的 brew 包。
运行 brew config
将为您提供有关 Homebrew 配置的简短数据列表。其中有一个名为 HOMEBREW_PREFIX
的环境变量,它看起来应该是这样的:
$ brew config
....
HOMEBREW_PREFIX: /usr/local
....
我建议首先将 /usr/local/bin
放在您的 PATH
环境变量上,这样您就可以通过 CLI 轻松使用您的 brew 包:
export PATH="/usr/local/bin:$PATH"
您可能还想为您正在使用的 shell 设置以下环境变量(给出的示例):
RUBY_ENGINE=ruby
RUBY_VERSION=2.7.1
GEM_ROOT=/usr/local/etc/ruby-2.7.1/lib/ruby/gems/2.7.1
(GEM_HOME
的别名)
gem env
提供了大量有关如何配置 Gems 的重要信息。
我遇到了这个确切的问题,并设法通过 运行 这个命令修复它:
CFLAGS="-Wno-error=implicit-function-declaration" rbenv install 2.6.7
注意 - 我需要那个版本 (2.6.7) 请将其更改为您需要的版本
我在这个博客 post 此处找到了这个 - https://dev.to/rbazinet/fix-installation-of-ruby-using-rbenv-on-macos-big-sur-3432