在Mac OS X Sierra上安装RVM,Ruby:无法要求openssl

Gra*_*yer 11 macos homebrew openssl ruby-on-rails rvm

我在新的Mac笔记本电脑上遇到了设置RVM + Rubies的问题,在安装了RVM之后加上Homebrew安装Rails会遇到错误:

ERROR:  While executing gem ... (Gem::Exception)
Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources
Run Code Online (Sandbox Code Playgroud)

背景与环境

  • Mac OS X 10.12.3.(塞拉利昂)
  • 自制1.1.8.安装OpenSSL
  • RVM 1.28.0
  • Ruby 2.3.3 Rails(试图安装最新的)
  • 环境变量(在OpenSSL crate跟随Mac OS X 10.11上的编译失败之后)已在Shell环境中设置以下变量
  • LDFLAGS = -L/usr/local/opt/openssl@1.1/lib
  • CPPFLAGS = -I/usr/local/opt/openssl@1.1/include
  • PKG_CONFIG_PATH = /usr/local/opt/openssl@1.1/lib/pkgconfig

发现和故障诊断

从一台干净的笔记本电脑开始,我按照通常的方式安装Homebrew,Xcode命令行工具,MySQL(用于rails dev),Git然后安装RVM.即使设置了环境变量,也卸载并重建了RVM,在Homebrew中删除并重新添加OpenSSL,在尝试安装Rails时,我遇到了错误:

ERROR:  While executing gem ... (Gem::Exception)
    Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources
Run Code Online (Sandbox Code Playgroud)

另外需要注意的是,在安装RVM时,我确保RVM知道Homebrew:

rvm autolibs enable
ram autolibs homebrew
Run Code Online (Sandbox Code Playgroud)

安装ruby-2.3.3的输出如下:

Searching for binary rubies, this might take some time.
Found remote file https://rubies.travis-ci.org/osx/10.12/x86_64/ruby-2.3.3.tar.bz2
Checking requirements for osx_brew.
Updating Homebrew...
Certificates in '/usr/local/etc/openssl/cert.pem' are already up to date.
Requirements installation successful.
ruby-2.3.3 - #configure
ruby-2.3.3 - #download
ruby-2.3.3 - #validate archive
ruby-2.3.3 - #extract
ruby-2.3.3 - #validate binary
Libraries missing for ruby-2.3.3: /Users/travis/.rvm/rubies/ruby-2.3.3/lib/libruby.2.3.0.dylib. Refer to your system manual for installing libraries
Mounting remote ruby failed with status 10, trying to compile.
Checking requirements for osx_brew.
Certificates in '/usr/local/etc/openssl/cert.pem' are already up to date.
Requirements installation successful.
Installing Ruby from source to: /Users/grantsayer/.rvm/rubies/ruby-2.3.3, this may take a while depending on your cpu(s)...
ruby-2.3.3 - #downloading ruby-2.3.3, this may take a while depending on your connection...
ruby-2.3.3 - #extracting ruby-2.3.3 to /Users/grantsayer/.rvm/src/ruby-2.3.3
Run Code Online (Sandbox Code Playgroud)

下一步

目前我陷入困境 - 未能通过此步骤或通过审查其他帖子进行验证以获得有效的解决方案.

Gra*_*yer 15

我找到了解决之前描述的问题的方法.以下步骤概述了如何解决它.

清理

  1. 删除了Homebrew的安装 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

  2. 删除了RVM的安装 rvm implode

重建

  1. 使用安装Homebrew ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

  2. 做啤酒完整性检查使用brew upgrade后跟brew doctor

  3. 使用安装RVM(再次!) \curl -sSL https://get.rvm.io | bash -s stable
  4. 通过使用autolibs选项确保RVM知道自制软件rvm autolibs homebrew
  5. 设置环境变量,以便我们知道openssl的安装位置:

    export LDFLAGS = -L/usr/local/opt/openssl/lib

    export CPPFLAGS = -I/usr/local/opt/openssl/include

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

  6. 通过安装ruby rvm install 2.3.3 --autolibs=homebrew

检查它是否有效

  1. 检查rvm空间是否知道使用的OpenSSL证书rvm osx-ssl-certs status all.运行此命令会产生以下输出: Certificates for /usr/local/etc/openssl/cert.pem: Up to date.

  2. 通过安装导轨 gem install rails

在最后一步安装成功,Rails正在工作(最后!)