35

试图为同事设置一台新的 macbook。进展不顺利。

首先我安装 OpenSSL:

Heathers-MacBook-Pro:~ heather$ rvm pkg install openssl
Fetching openssl-1.0.1c.tar.gz to /Users/heather/.rvm/archives
######################################################################## 100.0%
Extracting openssl to /Users/heather/.rvm/src/openssl-1.0.1c
Configuring openssl in /Users/heather/.rvm/src/openssl-1.0.1c.
Compiling openssl in /Users/heather/.rvm/src/openssl-1.0.1c.
Installing openssl to /Users/heather/.rvm/usr

Please note that it's required to reinstall all rubies:

    rvm reinstall all --force

Updating openssl certificates

然后我尝试用openssl安装ruby ...

Heathers-MacBook-Pro:website heather$ rvm install 1.9.3 --with-openssl-dir=$HOME/.rvm/usr
Fetching yaml-0.1.4.tar.gz to /Users/heather/.rvm/archives
Extracting yaml to /Users/heather/.rvm/src/yaml-0.1.4
Configuring yaml in /Users/heather/.rvm/src/yaml-0.1.4.
Compiling yaml in /Users/heather/.rvm/src/yaml-0.1.4.
Installing yaml to /Users/heather/.rvm/usr
Installing Ruby from source to: /Users/heather/.rvm/rubies/ruby-1.9.3-p392, this may take a while depending on your cpu(s)...
ruby-1.9.3-p392 - #downloading ruby-1.9.3-p392, this may take a while depending on your connection...
ruby-1.9.3-p392 - #extracting ruby-1.9.3-p392 to /Users/heather/.rvm/src/ruby-1.9.3-p392
ruby-1.9.3-p392 - #extracted to /Users/heather/.rvm/src/ruby-1.9.3-p392
ruby-1.9.3-p392 - #configuring
ruby-1.9.3-p392 - #compiling
ruby-1.9.3-p392 - #installing 
Removing old Rubygems files...
Installing rubygems-1.8.25 for ruby-1.9.3-p392 ...
Installation of rubygems completed successfully.
Saving wrappers to '/Users/heather/.rvm/bin'.
ruby-1.9.3-p392 - #adjusting #shebangs for (gem irb erb ri rdoc testrb rake).
ruby-1.9.3-p392 - #importing default gemsets, this may take time ...
Install of ruby-1.9.3-p392 - #complete 

Heathers-MacBook-Pro:website heather$ bundle update
Could not load OpenSSL.
You must recompile Ruby with OpenSSL support or change the sources in your Gemfile from 'https' to 'http'. Instructions for
compiling with OpenSSL using RVM are available at rvm.io/packages/openssl.

顺便说一句,gem 文件显示“源https://rubygems.org

想法?

4

12 回答 12

63

OP实际上拯救了我的一天!就我而言:

$ rvm pkg install openssl
$ rvm remove 2.4
$ rvm install 2.4 --with-openssl-dir=$HOME/.rvm/usr
$ gem install bundler
于 2017-02-14T05:56:49.723 回答
20

试试这个:

rvm get head
rvm pkg remove
rvm requirements run  # if brew gives you warnings about formulas to install, run "brew install" for each before moving on.

rvm reinstall [the version you need (i.e: 2.0.0)]
于 2013-03-19T23:03:07.910 回答
19

ArchLinux wiki上有很好的描述:

早于 2.4 的 Ruby 版本需要 OpenSSL 1.0,但 RVM 将尝试使用 OpenSSL 1.1 构建它们。

所以你可以做(​​最简单的):

$ rvm pkg install openssl
$ rvm reinstall 2.3.5 --with-openssl-dir=$HOME/.rvm/usr

您可以在ArchLinux wiki上查看更多解决方案。

于 2017-09-23T09:55:02.457 回答
18

使用 Homebrew 在 macOS Mojave (10.14.2) 上安装 Ruby 2.2。

安装自制软件

brew install openssl
rvm install 2.2 --with-openssl-dir=/usr/local/opt/openssl

不要使用rvm pkg已弃用,使用rvm autolibs enabled.

于 2019-01-17T13:08:22.547 回答
15

以下是我在带有 Catalina 的 Mac 上安装 rvm 和 ruby​​ 2.3 的方法。安装的 rvm 版本是 1.29.9。必须安装 OpenSSL 1.0.2(降级)。请注意 gpg 命令中的“ipv4”。

gpg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
\curl -sSL https://get.rvm.io | bash -s stable

在https://www.openssl.org/source/下载 openssl 1.0.2

tar -xzf openssl-1.0.2t.tar.gz
cd openssl-1.0.2t
./Configure darwin64-x86_64-cc --prefix=/usr/local/opt/openssl@1.0
make
make test
sudo make install

rvm install 2.3.3 --with-openssl-dir=/usr/local/opt/openssl@1.0
ruby -v
ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION'              
>> OpenSSL 1.0.2t  10 Sep 2019
于 2019-12-03T19:31:23.777 回答
7

在 MacOS 10.12.2 上,通过 brew 安装 openssl 将不起作用。要修复它,请运行:

export PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig:/usr/local/lib/pkgconfig

然后通过 rvm 安装 Ruby。

编辑:有关问题背后原因的更多信息。

于 2017-06-30T15:11:40.160 回答
6

对于那些在 Mac Mojave 上通过 RVM 使用 openssl 1.1 和 Ruby 2.3 的人,您可以尝试以下命令。问题是 Ruby 2.3 与 openssl 1.1 不兼容

rvm pkg install openssl
PKG_CONFIG_PATH=$HOME/.rvm/usr/lib/pkgconfig rvm reinstall 2.3.3 --with-openssl-dir=$HOME/.rvm/usr
于 2019-11-30T12:31:47.987 回答
6

这对我有用:

brew install rbenv/tap/openssl@1.0
rvm reinstall 1.9.3-p551 --with-openssl-dir='/usr/local/opt/openssl@1.0'
gem update --system

干杯!

于 2020-04-03T19:31:29.293 回答
6

对于旧版本的 ruby 2.2.10​​,MacOS High Sierra 10.13.6唯一对我有用的是:

  1. 切换到较旧的 OpenSSL 版本
brew switch openssl 1.0.2s
  1. 比使用重新安装 ruby--with-openssl-dir
rvm reinstall 2.2.10 --with-openssl-dir=/usr/local/Cellar/openssl/1.0.2s
于 2020-04-06T18:50:01.673 回答
4

所以这对我有用:

rvm pkg install openssl
rvm reinstall all --force

我也有rvm autolibs rvm_pkgreadline 支持。

于 2016-10-20T21:56:48.380 回答
2

openssl 版本:1.0.2k

这对我有用:

brew reinstall openssl
于 2017-03-24T12:14:40.903 回答
1

对于 MacOS 上的 rvm

首先,检查是否安装了 openssl。您应该看到如下内容:

$ brew --prefix openssl
/usr/local/opt/openssl@1.1

如果未安装 openssl,请执行此操作。

$ brew install openssl
$ brew unlink openssl
$ brew link --force openssl

如果您安装了多个 openssl,请考虑删除除一个以外的所有内容,以使您的生活更轻松。

$ brew cleanup openssl
$ brew list --versions openssl
$ brew uninstall <unwanted-openssl-version-here>

现在重新安装 ruby​​ 版本,指定所需的 openssl 路径。

$ rvm reinstall <your-version-here> --with-openssl-dir=`brew --prefix openssl`

最后,验证你的 ruby​​ 是用它链接到的相同 openssl 编译的。如果你两次看到相同的版本,你应该已经准备好了。

$ ruby -ropenssl -e'puts OpenSSL::OPENSSL_VERSION, OpenSSL::OPENSSL_LIBRARY_VERSION'
OpenSSL 1.1.1d  10 Sep 2019
OpenSSL 1.1.1d  10 Sep 2019

如果稍后您安装其他版本的 ruby​​,您将需要传递相同的--with-openssl-dir参数。或者,我相信您可以在 bash 配置文件中设置以下变量。

export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$(brew --prefix openssl)/lib/pkgconfig"
export LIBRARY_PATH="$LIBRARY_PATH:$(brew --prefix openssl)/lib"

如果上述方法不起作用,请从 bash 配置文件中删除这些行,然后使用上述--with-openssl-dir参数。

参考:https ://github.com/rvm/rvm/issues/4562 参考:https ://bugs.ruby-lang.org/issues/12630

于 2020-02-13T02:38:58.910 回答