RVM和OpenSSL的麻烦

时间:2013-03-19 22:43:13

标签: ruby openssl rvm

尝试为同事设置新的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文件说“source https://rubygems.org

想法?

12 个答案:

答案 0 :(得分:25)

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

$ rvm pkg install openssl
$ rvm remove 2.4
$ rvm install 2.4 --with-openssl-dir=$HOME/.rvm/usr
$ gem install bundler

答案 1 :(得分:14)

试试这个:

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)]

答案 2 :(得分:10)

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

Install Homebrew

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

请勿使用deprecated,而应使用rvm pkg

答案 3 :(得分:5)

在MacOS 10.12.2上通过brew安装openssl将无法正常工作。要修复它,请运行:

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

然后通过rvm安装Ruby。

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

答案 4 :(得分:5)

对于2.2.10上较旧版本的红宝石MacOS High Sierra 10.13.6,对我而言唯一有效的方法是:

  1. 切换到旧版OpenSSL
brew switch openssl 1.0.2s
  1. 比使用--with-openssl-dir重新安装ruby
rvm reinstall 2.2.10 --with-openssl-dir=/usr/local/Cellar/openssl/1.0.2s

答案 5 :(得分:4)

这对我有用:

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

干杯!

答案 6 :(得分:2)

所以这对我有用:

rvm pkg install openssl
rvm reinstall all --force

我也有rvm autolibs rvm_pkg的readline支持。

答案 7 :(得分:2)

openssl版本:1.0.2k

这对我有用:

brew reinstall openssl

答案 8 :(得分:2)

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上看到更多解决方案。

答案 9 :(得分:2)

这是我使用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

答案 10 :(得分:1)

对于那些在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

答案 11 :(得分: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`

最后,验证您的红宝石是否使用与其链接的相同的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