[英]Two different ruby versions on mac?
我正在本地设置一个简单的 ruby on rails 应用程序。 看来我在 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 安装另一个永远不会覆盖或重新放置系统范围版本的软件。
您正在寻找“ 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 环境设置教程,具体取决于操作系统和版本。
您安装了两个不同版本的 Ruby,因为 MacOS 自带标准安装的 Ruby。
您还有指向 Ruby 系统版本的rails
。 该版本通常在/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) 请将其更改为您需要的版本
我在这篇博客文章中找到了这个 - https://dev.to/rbazinet/fix-installation-of-ruby-using-rbenv-on-macos-big-sur-3432
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.