【问题标题】:rbenv install 2.7.1 fails on Mac OS Catalina using home-brewrbenv install 2.7.1 在 Mac OS Catalina 上使用 home-brew 失败
【发布时间】:2020-06-17 23:58:58
【问题描述】:

我这几天一直在尝试安装 ruby​​。

我安装了 home-brew 检查是否安装了 openssl@1.1。

我运行brew install rbenv 并按如下方式配置我的zsh,

local READLINE_PATH=$(brew --prefix readline)
local OPENSSL_PATH=$(brew --prefix openssl)
export LDFLAGS="-L$READLINE_PATH/lib -L$OPENSSL_PATH/lib"
export CPPFLAGS="-I$READLINE_PATH/include -I$OPENSSL_PATH/include"
export PKG_CONFIG_PATH="$READLINE_PATH/lib/pkgconfig:$OPENSSL_PATH/lib/pkgconfig"

# Use the OpenSSL from Homebrew instead of ruby-build
# Note: the Homebrew version gets updated, the ruby-build version doesn't
export RUBY_CONFIGURE_OPTS="--with-openssl-dir=$OPENSSL_PATH"

# Place openssl@1.1 at the beginning of your PATH (preempt system libs)
export PATH=$OPENSSL_PATH/bin:$PATH

# Load rbenv
eval "$(rbenv init -)"

# Extract the latest version of Ruby so you can do this:
# rbenv install $LATEST_RUBY_VERSION
export LATEST_RUBY_VERSION=$(rbenv install -l | grep -v - | tail -1)

当我尝试运行 rbenv install 2.7.1 时,我得到一个构建错误。说它不能要求 openssl@1.1。

我检查了它是否已安装并尝试了我能想到的一切。这是在 catalina 10.15 全新安装上测试的。 我重新格式化了我的电脑并安装了 Xcode 命令工具。

这里是日志。

installing manpages:                /Users/main/.rbenv/versions/2.7.1/share/man (man1, man5)
installing default gems from lib:   /Users/main/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0 (build_info, cache, doc, extensions, gems, specifications)
                                    benchmark 0.1.0
/private/var/folders/cv/z8f4fy9171z64hl8vk4ms68h0000gn/T/ruby-build.20200617194325.10220.l3muIu/ruby-2.7.1/lib/rubygems/core_ext/kernel_require.rb:92:in `require': cannot load such file -- openssl (LoadError)
        from /private/var/folders/cv/z8f4fy9171z64hl8vk4ms68h0000gn/T/ruby-build.20200617194325.10220.l3muIu/ruby-2.7.1/lib/rubygems/core_ext/kernel_require.rb:92:in `require'
        from /private/var/folders/cv/z8f4fy9171z64hl8vk4ms68h0000gn/T/ruby-build.20200617194325.10220.l3muIu/ruby-2.7.1/lib/rubygems/specification.rb:2426:in `to_ruby'
        from ./tool/rbinstall.rb:846:in `block (2 levels) in install_default_gem'
        from ./tool/rbinstall.rb:279:in `open_for_install'
        from ./tool/rbinstall.rb:845:in `block in install_default_gem'
        from ./tool/rbinstall.rb:835:in `each'
        from ./tool/rbinstall.rb:835:in `install_default_gem'
        from ./tool/rbinstall.rb:799:in `block in <main>'
        from ./tool/rbinstall.rb:950:in `block in <main>'
        from ./tool/rbinstall.rb:947:in `each'
        from ./tool/rbinstall.rb:947:in `<main>'
make: *** [do-install-all] Error 1

任何帮助将不胜感激,我很生气。

【问题讨论】:

  • 你试过brew install openssl吗?过去我在使用 rvm 时遇到过类似的问题(非常令人沮丧),并发现 rvm install 2.6.5 --with-openssl-dir=`brew --prefix openssl` 成功了。不知道 rbenv 是否有类似的东西
  • 是的,我有。无论出于何种原因,用于 ruby​​ 的 openssl 无法构建,我不知道为什么。它说在执行 rbenv 安装版本时无法构建 openssl。我想知道我是否缺少对计算机的依赖?

标签: ruby-on-rails macos macos-catalina rbenv


【解决方案1】:

ruby-build 会尽力下载并编译想要的 Ruby 版本,但有时由于未满足系统依赖关系而导致编译失败,或者编译成功但新的 Ruby 版本在运行时出现奇怪的失败。以下说明是我们对健全构建环境的建议。

macOS: 如果您还没有这样做,请安装 Xcode 命令行工具 (xcode-select --install) 和 Homebrew。那么:

可选,但推荐:

brew install openssl readline

使用 Homebrew OpenSSL(注意:不适用于 ruby​​
export RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@1.1)"
rbenv install 2.6.5

【讨论】:

    【解决方案2】:

    所以我最终做的是安装了整个在线找到的 Xcode 包,而不是通过 App Store。这样做有助于解决我的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-08
      • 2018-12-25
      • 2021-07-26
      • 2014-06-23
      相关资源
      最近更新 更多