我正在一个使用 openssl (2.2.1) gem 和 ruby 2.7.5 的项目中工作。我使用 rbenv 成功安装了 Ruby 2.7.5(ruby-build 通过下载 openssl 1.1.1 帮助安装了它)。
但是,当我这样做
bundle install
时,我收到以下错误:
extconf.rb:113:in `<main>': OpenSSL >= 1.0.1, < 3.0.0 or LibreSSL >= 2.5.0 is required (RuntimeError)
...
An error occurred while installing openssl (2.2.1), and Bundler cannot continue.
Make sure that `gem install openssl -v '2.2.1' --source 'https://rubygems.org/'` succeeds before bundling
我尝试通过这样做手动安装gem:
gem install openssl -v '2.2.1' -- --with-openssl-dir=$(brew --prefix [email protected])
但这不起作用。我不知道还能做什么。命令 brew --prefix [email protected]
返回 /opt/homebrew/opt/[email protected]
但看起来它正在使用我安装的另一个 openssl 版本,这是我执行 openssl version
后得到的版本(这会返回 OpenSSL 3.1.2 1 Aug 2023 (Library: OpenSSL 3.1.2 1 Aug 2023)
)。
我尝试使用
gem install openssl -v '2.2.1' -- --with-openssl-dir=$(brew --prefix [email protected])
安装 gem,并期望使用指定的 openssl 目录安装 gem
要安装 gem openssl v2,请先安装 [email protected]。
brew install [email protected]
设置ENV
export PKG_CONFIG_PATH=$(brew --prefix [email protected])/lib/pkgconfig
,然后执行gem install openssl -v 2.1.2 -- --with-openssl-dir="$(brew --prefix [email protected])"
。
或者简单地执行命令:
PKG_CONFIG_PATH=$(brew --prefix [email protected])/lib/pkgconfig gem install openssl -v 2.1.2 -- --with-openssl-dir="$(brew --prefix [email protected])"
。
请将 openssl 版本 2.1.2 替换为您的版本。