rbenv install 2.7.1 使用自制软件在 Mac OS Catalina 上失败

rbenv install 2.7.1 fails on Mac OS Catalina using home-brew

几天来我一直在尝试安装 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

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

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

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

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

可选,但推荐:

brew install openssl readline

使用 Homebrew OpenSSL(注意:不适用于 ruby < 2.4)

export RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@1.1)"
rbenv install 2.6.5