【问题标题】:Two different ruby versions on mac?mac上有两个不同的ruby版本?
【发布时间】:2020-12-31 03:53:06
【问题描述】:

我正在本地设置一个简单的 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。

【问题讨论】:

    标签: ruby-on-rails ruby macos homebrew


    【解决方案1】:

    有不同的版本,因为 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 环境设置教程,具体取决于操作系统和版本。

    https://gorails.com/setup/osx/10.15-catalina#overview

    【讨论】:

    • 感谢您的快速回复!当有人想要拥有和使用多个版本的 ruby​​ 时,它看起来就像使用它。我只想用一个,只是不知道为什么它现在说我有两个不同的版本。
    • 尝试将“bundle exec”附加到您的命令“bundle exec rails s”中。
    • 有不同的版本,因为 Mac OSX 已经默认包含一个用于系统脚本 (2.6)。 Homebrew 安装另一个永远不会覆盖或重新替换系统范围版本的版本。
    • Ruby 版本管理器允许您只使用一个版本,无论明天 OSX 删除系统范围还是自制更新到 2.8 或 3.0
    • 谢谢,我没有意识到其中一个版本来自 MacOS。刚刚下载了带有您发送的 gorails 链接的 ruby​​ 和 rails,它运行良好!
    【解决方案2】:

    您安装了两个不同版本的 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.1GEM_HOME 的别名)

    gem env 提供了大量有关如何配置 Gems 的重要信息。

    【讨论】:

      【解决方案3】:

      我遇到了这个确切的问题,并通过运行以下命令设法解决了它:

      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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-11
        • 1970-01-01
        • 2019-05-27
        • 2020-09-26
        • 1970-01-01
        • 2016-12-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多