Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build OpenSSL so Ruby 2.0 installs Just Work on Mountain Lion #273

Merged

Conversation

jeremy
Copy link
Member

@jeremy jeremy commented Jan 24, 2013

Ruby 2.0 won't compile the OpenSSL extension on Mountain Lion because Apple shipped a crippled OpenSSL distribution. The fix is to build your own OpenSSL and link to that instead:

  brew install openssl
  CONFIGURE_OPTS="--with-openssl-dir=`brew --prefix openssl`" \
    rbenv install 2.0.0-rc1

That's a lot of hassle for what will soon be a very common case. We can fix it by bundling a working OpenSSL.

TODO:

  • The OpenSSL build needs to be limited to Mountain Lions using the crippled distribution.
  • CONFIGURE_ARGS is hacked.
  • And the OpenSSL configuration options need review.
  • set --openssldir to $PREFIX/openssl/ssl
  • use a subpath for openssl install so we don't get an openssl shim for its bin/openssl
  • provide root certs: http get http://curl.haxx.se/ca/cacert.pem > OPENSSLDIR/certs/cacert.pem
  • c_rehash certs so openssl sees the new cacert.pem
  • do a post-install check that the ruby openssl extension installed, since it will silently continue otherwise
  • extract openssl bundling and verification to the main executable so other definitions can reuse them
  • update 2.0.0-dev and -preview definitions to bundle openssl
  • dump certs from system keychain rather than download from curl's site
  • use homebrew openssl if available. quicker than rebuilding for every ruby install.
  • deal with embedded quoting in --configure args; need to switch to an array

@jeremy
Copy link
Member Author

jeremy commented Feb 1, 2013

Ready to roll!

  • Builds openssl if it's unavailable or if it's Mountain Lion's troublesome build
  • Installs mozilla's root certs from http://curl.haxx.se/docs/caextract.html
  • Checks that the Ruby openssl ext was actually built afterward

@jeremy
Copy link
Member Author

jeremy commented Feb 1, 2013

/cc @sstephenson @sferik 😁

@sferik
Copy link
Contributor

sferik commented Feb 1, 2013

👍 from me me. I pulled down your branch and successfully installed Ruby 2.0.0-rc1 on my Mac running OS X 10.8 (Mountain Lion) and OpenSSL 0.9.8r.

> bin/ruby-build 2.0.0-rc1 ~/.rbenv/versions/2.0.0-rc1
Downloading ruby-2.0.0-rc1.tar.gz...
-> http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-rc1.tar.gz
Installing ruby-2.0.0-rc1...
Downloading openssl-1.0.1c.tar.gz...
-> http://www.openssl.org/source/openssl-1.0.1c.tar.gz
Installing openssl-1.0.1c...
Installed openssl-1.0.1c to /Users/sferik/.rbenv/versions/2.0.0-rc1

Installed ruby-2.0.0-rc1 to /Users/sferik/.rbenv/versions/2.0.0-rc1

One question: should there be that extra new line after "Installed openssl…"?

@jeremy
Copy link
Member Author

jeremy commented Feb 1, 2013

The newline is due to nesting a package install. The nested openssl install emits a trailing newline: https://github.com/sstephenson/ruby-build/blob/master/bin/ruby-build#L116

@jeremy
Copy link
Member Author

jeremy commented Feb 1, 2013

As a quick sanity check, if gem install bundler works, you're looking good since rubygems uses SSL and verifies certs by default.

Verifying that we're using a bundled openssl config dir as well:

2.0.0-dev ~ ruby -ropenssl -e 'puts OpenSSL::Config::DEFAULT_CONFIG_FILE'
/usr/local/etc/openssl/openssl.cnf
2.0.0-dev ~ rbenv shell 2.0.0-rc1
2.0.0-rc1 ~ ruby -ropenssl -e 'puts OpenSSL::Config::DEFAULT_CONFIG_FILE'
/Users/jeremy/.rbenv/versions/2.0.0-rc1/openssl/ssl/openssl.cnf

@sstephenson
Copy link
Contributor

This looks good Jeremy.

The only thing that gives me pause is pulling root certs from curl.haxx.se. On one hand, we're freed from the responsibility of bundling a fresh set of certificates ourselves. On the other hand, we're blindly installing root certificates that change relatively frequently (http://curl.haxx.se/ca/cacert.pem says Dec 29 2012) without verifying their checksum.

What do you think about reading the system's certificates from Keychain instead?

@sstephenson
Copy link
Contributor

Looks like we can get a pem-formatted dump of the system root certificates with this command:

security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain

We can see the CA labels by running the same command without -p:

$ security find-certificate -a /System/Library/Keychains/SystemRootCertificates.keychain | grep labl
    "labl"<blob>="Prefectural Association For JPKI"
    "labl"<blob>="Entrust.net Certification Authority (2048)"
    "labl"<blob>="A-Trust-Qual-01"
    "labl"<blob>="A-Trust-Qual-02"
    "labl"<blob>="A-Trust-nQual-01"
    "labl"<blob>="A-Trust-nQual-03"
    "labl"<blob>="AOL Time Warner Root Certification Authority 1"
    "labl"<blob>="AOL Time Warner Root Certification Authority 2"
    "labl"<blob>="ApplicationCA"
    "labl"<blob>="AddTrust Class 1 CA Root"
    "labl"<blob>="AddTrust External CA Root"
    "labl"<blob>="AddTrust Public CA Root"
    "labl"<blob>="AddTrust Qualified CA Root"
    "labl"<blob>="AffirmTrust Premium ECC"
    "labl"<blob>="AffirmTrust Premium"
    "labl"<blob>="AffirmTrust Networking"
    "labl"<blob>="AffirmTrust Commercial"
    "labl"<blob>="America Online Root Certification Authority 1"
    "labl"<blob>="America Online Root Certification Authority 2"
    "labl"<blob>="Application CA G2"
    "labl"<blob>="Developer ID Certification Authority"
    "labl"<blob>="Apple Root CA"
    "labl"<blob>="Apple Root Certificate Authority"
    "labl"<blob>="Admin-Root-CA"
    "labl"<blob>="AdminCA-CD-T01"
    "labl"<blob>="Baltimore CyberTrust Root"
    "labl"<blob>="Buypass Class 2 CA 1"
    "labl"<blob>="Buypass Class 3 CA 1"
    "labl"<blob>="VeriSign Class 1 Public Primary Certification Authority - G3"
    "labl"<blob>="VeriSign Class 2 Public Primary Certification Authority - G3"
    "labl"<blob>="VeriSign Class 3 Public Primary Certification Authority - G3"
    "labl"<blob>="VeriSign Class 4 Public Primary Certification Authority - G3"
    "labl"<blob>="China Internet Network Information Center EV Certificates Root"
    "labl"<blob>="COMODO Certification Authority"
    "labl"<blob>="Certigna"
    "labl"<blob>="ePKI Root Certification Authority"
    "labl"<blob>="Class 1 Public Primary Certification Authority - G2"
    "labl"<blob>="Class 2 Public Primary Certification Authority - G2"
    "labl"<blob>="Class 3 Public Primary Certification Authority - G2"
    "labl"<blob>="Class 4 Public Primary Certification Authority - G2"
    "labl"<blob>="AAA Certificate Services"
    "labl"<blob>="Secure Certificate Services"
    "labl"<blob>="Trusted Certificate Services"
    "labl"<blob>="DST Root CA X4"
    "labl"<blob>="Deutsche Telekom Root CA 2"
    "labl"<blob>="DigiCert Assured ID Root CA"
    "labl"<blob>="DigiCert Global Root CA"
    "labl"<blob>="DigiCert High Assurance EV Root CA"
    "labl"<blob>="DoD CLASS 3 Root CA"
    "labl"<blob>="DoD Root CA 2"
    "labl"<blob>=0x45424720456C656B74726F6E696B20536572746966696B612048697A6D6574205361C49F6C6179C4B163C4B173C4B1  "EBG Elektronik Sertifika Hizmet Sa\304\237lay\304\261c\304\261s\304\261"
    "labl"<blob>="ECA Root CA"
    "labl"<blob>="Echoworx Root CA2"
    "labl"<blob>="Entrust Root Certification Authority"
    "labl"<blob>="Entrust.net Secure Server Certification Authority"
    "labl"<blob>="Equifax Secure Certificate Authority"
    "labl"<blob>="Equifax Secure Global eBusiness CA-1"
    "labl"<blob>="Equifax Secure eBusiness CA-1"
    "labl"<blob>="Equifax Secure eBusiness CA-2"
    "labl"<blob>="Juur-SK"
    "labl"<blob>="Common Policy"
    "labl"<blob>="Federal Common Policy CA"
    "labl"<blob>="Autoridad de Certificacion Firmaprofesional CIF A62634068"
    "labl"<blob>="Go Daddy Class 2 Certification Authority"
    "labl"<blob>="GTE CyberTrust Global Root"
    "labl"<blob>="GeoTrust Global CA"
    "labl"<blob>="GlobalSign"
    "labl"<blob>="GlobalSign Root CA"
    "labl"<blob>="GlobalSign"
    "labl"<blob>="Go Daddy Root Certificate Authority - G2"
    "labl"<blob>="Hongkong Post Root CA 1"
    "labl"<blob>="DST Root CA X3"
    "labl"<blob>="DST ACES CA X6"
    "labl"<blob>="Izenpe.com"
    "labl"<blob>="Izenpe.com"
    "labl"<blob>="SecureSign RootCA11"
    "labl"<blob>="KMD-CA Kvalificeret Person"
    "labl"<blob>="KMD-CA Server"
    "labl"<blob>="MPHPT"
    "labl"<blob>=0x4E65744C6F636B204172616E792028436C61737320476F6C64292046C59174616EC3BA73C3AD7476C3A16E79  "NetLock Arany (Class Gold) F\305\221tan\303\272s\303\255tv\303\241ny"
    "labl"<blob>="Network Solutions Certificate Authority"
    "labl"<blob>="Class 1 Public Primary Certification Authority"
    "labl"<blob>="Class 2 Public Primary Certification Authority"
    "labl"<blob>="Class 3 Public Primary Certification Authority"
    "labl"<blob>="Certum Trusted Network CA"
    "labl"<blob>="Chambers of Commerce Root"
    "labl"<blob>="Global Chambersign Root"
    "labl"<blob>="RSA Security 2048 V3"
    "labl"<blob>="Visa eCommerce Root"
    "labl"<blob>="Security Communication RootCA1"
    "labl"<blob>="Security Communication EV RootCA1"
    "labl"<blob>="Security Communication RootCA2"
    "labl"<blob>="Starfield Class 2 Certification Authority"
    "labl"<blob>="Sonera Class1 CA"
    "labl"<blob>="Sonera Class2 CA"
    "labl"<blob>="Starfield Root Certificate Authority - G2"
    "labl"<blob>="Starfield Services Root Certificate Authority - G2"
    "labl"<blob>="SwissSign Gold CA - G2"
    "labl"<blob>="SwissSign Platinum CA - G2"
    "labl"<blob>="SwissSign Silver CA - G2"
    "labl"<blob>="TDC OCES CA"
    "labl"<blob>="TDC Internet Root CA"
    "labl"<blob>="Thawte Personal Basic CA"
    "labl"<blob>="Thawte Personal Freemail CA"
    "labl"<blob>="Thawte Personal Premium CA"
    "labl"<blob>="Thawte Premium Server CA"
    "labl"<blob>="Thawte Server CA"
    "labl"<blob>="Thawte Timestamping CA"
    "labl"<blob>="Trustis FPS Root CA"
    "labl"<blob>="Secure Global CA"
    "labl"<blob>="SecureTrust CA"
    "labl"<blob>=0x54C39C42C4B054414B2055454B4145204BC3B66B20536572746966696B612048697A6D6574205361C49F6C6179C4B163C4B173C4B1202D2053C3BC72C3BC6D2033  "T\303\234B\304\260TAK UEKAE K\303\266k Sertifika Hizmet Sa\304\237lay\304\261c\304\261s\304\261 - S\303\274r\303\274m 3"
    "labl"<blob>="UCA Global Root"
    "labl"<blob>="UCA Root"
    "labl"<blob>="UTN-USERFirst-Client Authentication and Email"
    "labl"<blob>="UTN-USERFirst-Hardware"
    "labl"<blob>="UTN-USERFirst-Network Applications"
    "labl"<blob>="UTN-USERFirst-Object"
    "labl"<blob>="UTN - DATACorp SGC"
    "labl"<blob>="Certum CA"
    "labl"<blob>="VAS Latvijas Pasts SSI(RCA)"
    "labl"<blob>="http://www.valicert.com/"
    "labl"<blob>="http://www.valicert.com/"
    "labl"<blob>="http://www.valicert.com/"
    "labl"<blob>="VeriSign Class 3 Public Primary Certification Authority - G5"
    "labl"<blob>="Class 1 Public Primary Certification Authority"
    "labl"<blob>="Class 2 Public Primary Certification Authority"
    "labl"<blob>="Class 3 Public Primary Certification Authority"
    "labl"<blob>="OISTE WISeKey Global Root GA CA"
    "labl"<blob>="WellsSecure Public Root Certificate Authority"
    "labl"<blob>="XRamp Global Certification Authority"
    "labl"<blob>="A-CERT ADVANCED"
    "labl"<blob>="CertiNomis"
    "labl"<blob>=0x4143205261C3AD7A20436572746963C3A16D61726120532E412E  "AC Ra\303\255z Certic\303\241mara S.A."
    "labl"<blob>="Belgium Root CA"
    "labl"<blob>="Belgium Root CA2"
    "labl"<blob>="Class 2 Primary CA"
    "labl"<blob>="Cisco Root CA 2048"
    "labl"<blob>="CNNIC ROOT"
    "labl"<blob>="CA Disig"
    "labl"<blob>="Entrust.net Certification Authority (2048)"
    "labl"<blob>="NetLock Expressz (Class C) Tanusitvanykiado"
    "labl"<blob>="FNMT Clase 2 CA"
    "labl"<blob>="GeoTrust Primary Certification Authority"
    "labl"<blob>="GlobalSign Root CA"
    "labl"<blob>="IPS CA Chained CAs Certification Authority"
    "labl"<blob>="IPS CA CLASE1 Certification Authority"
    "labl"<blob>="IPS CA CLASE3 Certification Authority"
    "labl"<blob>="IPS CA CLASEA1 Certification Authority"
    "labl"<blob>="IPS CA CLASEA3 Certification Authority"
    "labl"<blob>="IPS CA Timestamping Certification Authority"
    "labl"<blob>="KISA RootCA 1"
    "labl"<blob>="KISA RootCA 3"
    "labl"<blob>="NetLock Kozjegyzoi (Class A) Tanusitvanykiado"
    "labl"<blob>="NetLock Minositett Kozjegyzoi (Class QA) Tanusitvanykiado"
    "labl"<blob>="Thawte Personal Basic CA"
    "labl"<blob>="Thawte Personal Freemail CA"
    "labl"<blob>="Thawte Personal Premium CA"
    "labl"<blob>="VRK Gov. Root CA"
    "labl"<blob>="QuoVadis Root Certification Authority"
    "labl"<blob>="QuoVadis Root CA 2"
    "labl"<blob>="QuoVadis Root CA 3"
    "labl"<blob>="Thawte Server CA"
    "labl"<blob>="Thawte Premium Server CA"
    "labl"<blob>="Staat der Nederlanden Root CA - G2"
    "labl"<blob>="Staat der Nederlanden Root CA"
    "labl"<blob>="StartCom Certification Authority"
    "labl"<blob>="StartCom Certification Authority"
    "labl"<blob>="Swisscom Root CA 1"
    "labl"<blob>="SwissSign CA (RSA IK May 6 1999 18:00:58)"
    "labl"<blob>="TC TrustCenter Universal CA I"
    "labl"<blob>="TC TrustCenter Universal CA II"
    "labl"<blob>="TC TrustCenter Class 2 CA II"
    "labl"<blob>="TC TrustCenter Class 3 CA II"
    "labl"<blob>="TC TrustCenter Class 4 CA II"
    "labl"<blob>="thawte Primary Root CA"
    "labl"<blob>="thawte Primary Root CA - G2"
    "labl"<blob>="TC TrustCenter Universal CA III"
    "labl"<blob>=0x54C39C524B545255535420456C656B74726F6E696B20536572746966696B612048697A6D6574205361C49F6C6179C4B163C4B173C4B1  "T\303\234RKTRUST Elektronik Sertifika Hizmet Sa\304\237lay\304\261c\304\261s\304\261"
    "labl"<blob>=0x54C39C524B545255535420456C656B74726F6E696B20536572746966696B612048697A6D6574205361C49F6C6179C4B163C4B173C4B1  "T\303\234RKTRUST Elektronik Sertifika Hizmet Sa\304\237lay\304\261c\304\261s\304\261"
    "labl"<blob>=0x54C39C524B545255535420456C656B74726F6E696B20536572746966696B612048697A6D6574205361C49F6C6179C4B163C4B173C4B1  "T\303\234RKTRUST Elektronik Sertifika Hizmet Sa\304\237lay\304\261c\304\261s\304\261"
    "labl"<blob>="TWCA Root Certification Authority"
    "labl"<blob>="NetLock Uzleti (Class B) Tanusitvanykiado"
    "labl"<blob>="Wells Fargo Root Certificate Authority"

@sstephenson
Copy link
Contributor

Also, I think it's fine for us to scope this to OS X only—every other system comes with a package manager capable of installing OpenSSL and a trusted set of root certificates. Let's not take on more than we have to.

# Check for Mountain Lion's broken OpenSSL build.
if [[ $(type sw_vers) ]] &&
[[ "$(sw_vers -productVersion)" = 10.8.* ]] &&
[[ "$(openssl version)" = "OpenSSL 0.9.8r 8 Feb 2011" ]]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lion's OpenSSL displays the exact same version string:

$ sw_vers -productVersion
10.7.3
$ openssl version
OpenSSL 0.9.8r 8 Feb 2011

This is probably an issue on all versions of OS X, yeah?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably. I'm not sure how far back it goes. I think it'd be fine to always bundle OpenSSL on Mac if the builtin's what's available. Might be nice to check for brew --prefix openssl too—quicker install for many folks who've already have OpenSSL, but don't have it in their $PATH.

@jeremy
Copy link
Member Author

jeremy commented Feb 3, 2013

Also, I think it's fine for us to scope this to OS X only—every other system comes with a package manager capable of installing OpenSSL and a trusted set of root certificates. Let's not take on more than we have to.

We're not doing any work to support non-osx platforms. They're supported as a side effect. What would we remove in order to narrow the scope?

Missing libssl-dev is super common on Ubuntu, fwiw. Think a post-install check that openssl ext was built is a good idea for all builds.

@jeremy
Copy link
Member Author

jeremy commented Feb 3, 2013

Agreed re. dumping system certs. Forgot we'd investigated that!

@sstephenson
Copy link
Contributor

We're not doing any work to support non-osx platforms. They're supported as a side effect. What would we remove in order to narrow the scope?

It'd let us remove the external certificate dependency—we only know how to pull system certs on OS X.

I think it'd be enough to check for presence of sw_vers and match the OpenSSL version:

if type sw_vers >/dev/null && [ "$(openssl -version)" = "OpenSSL 0.9.8r 8 Feb 2011" ]; then

@jeremy
Copy link
Member Author

jeremy commented Feb 3, 2013

Ah, yes indeed. Dig it.

@jeremy
Copy link
Member Author

jeremy commented Feb 4, 2013

Man, the slowest part of install feels like capi & rdoc/ri generation. Gotta shut that off. #156.

@jeremy
Copy link
Member Author

jeremy commented Feb 4, 2013

@sstephenson Limited to OS X and added a check for Homebrew.

@jeremy
Copy link
Member Author

jeremy commented Feb 4, 2013

Killed the Homebrew support. Scope creep with dubious aesthetics.

@alloy
Copy link
Contributor

alloy commented Feb 6, 2013

Awesome, thanks @jeremy.

OPENSSLDIR="${OPENSSLDIR:-$OPENSSL_PREFIX_PATH/ssl}"

# Tell Ruby to use this openssl for its extension.
RUBY_CONFIGURE_OPTS="--with-openssl-dir=$OPENSSL_PREFIX_PATH $RUBY_CONFIGURE_OPTS"
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't nest quoting here, so we're leaving OPENSSL_PREFIX_PATH unquoted. No good. @sstephenson suggested switching to a config opts array + little api to add opts.

Ditto for $OPENSSLDIR below.

@sferik
Copy link
Contributor

sferik commented Feb 8, 2013

It would be nice if we could get this merged before we ship a release that includes 2.0.0-rc2 (this may be the last RC), so people can test it out before 2.0.0 final ships on February 24.

@sstephenson
Copy link
Contributor

@sstephenson sstephenson merged commit 3a426d1 into rbenv:master Feb 8, 2013
@bensie
Copy link
Contributor

bensie commented Feb 8, 2013

🤘

Awesome work!

sferik referenced this pull request Feb 25, 2013
…es some people are having, pending understanding why static linking isn't working.
@mjackson
Copy link

Just ran into this issue this afternoon while running rbenv install 2.0.0-p195 on a brand new machine. rbenv was installed via Homebrew. Is that not the recommended way to do things anymore?

@jeremy Just asking because I noticed your "Kill Homebrew support" comment...

@jeremy
Copy link
Member Author

jeremy commented Jun 21, 2013

@mjijackson I had some support for automatically using the Homebrew openssl package, if available, but felt it was premature. It's unrelated to whether you installed rbenv using Homebrew or not.

@jbayer
Copy link

jbayer commented Jun 21, 2013

@jeremy here is a similar encounter for me on mountain lion with 2.0.0-p195 where it blames an openssl issue. is there a work-around?

https://gist.github.com/jbayer/5831322#file-gistfile1-txt

@mjackson
Copy link

@jbayer My issue appears to be the same. Not sure what the recommended installation route is at this point.

@jeremy Ok, I can understand that. In that case is there currently a Just Works way to install 2.0.0-p195? Do you recommend installing openssl outside of Homebrew?

@wpdavenport
Copy link

@jbayer I am on 10.8.4 using Homebrew. I was getting the same error as you posted in your gist when trying to install2.0.0-p195 . I was successful in installing 2.0.0-p195 after forcing the link for openssl: "brew link openssl --force"

@jbayer
Copy link

jbayer commented Jun 22, 2013

@wpdavenport confirmed that the "brew link openssl --force" option worked for me with 2.0.0-p195 on OSX 10.8.4. thanks for the help!

@mjackson
Copy link

@wpdavenport I can also confirm that brew link openssl --force worked for me on 10.8.4. Thanks! Now if I could just find the like button... 👍

@alloy
Copy link
Contributor

alloy commented Jun 26, 2013

Instead of force linking OpenSSL (which could lead to issues elsewhere), you might just want to use the CONFIGURE_OPTS env variable that ruby-build uses. E.g.:

env CONFIGURE_OPTS='--with-openssl-dir=/usr/local/opt/openssl' rbenv install 2.0.0-p195

@betandr
Copy link

betandr commented Jun 27, 2013

I followed the original work-around instructions and all of the tips that people and posted and these too but I'm still getting the same issue. :/

@musha68k
Copy link

@BethAnderson did you brew install openssl and tried the very helpful env var trick mentioned by @alloy? If you --force linked you can always unlink again.

@betandr
Copy link

betandr commented Jun 27, 2013

I did those both, yes. Just tried:

export CC=clang

...and it built, then I changed the symlink in /usr/bin/ruby.

@musha68k
Copy link

@BethAnderson for me it just worked with those two steps (install openssl, configure flag pointing to brewed openssl) I didn't change the default compiler or anything. I'm on OSX 10.8.4 with rbenv / rbenv installer. Sorry. :(

@betandr
Copy link

betandr commented Jun 27, 2013

@musha68k Not sure why it didn't work and why it did work when I tried that. Just need to get bundler to pick up the correct Ruby version now though.

@musha68k
Copy link

@BethAnderson using rbenv just put 2.0.0-p195 in project/.ruby-version and bundler should take over from there.

@betandr
Copy link

betandr commented Jun 27, 2013

@musha68k Awesome, thanks! :) 👍

@scottmagdalein
Copy link

I'm trying RUBY_CONFIGURE_OPTS='--with-openssl-dir=/usr/local/Cellar/openssl' rbenv install 2.0.0-p247 and it's not working for me. Can anyone help? Maybe @musha68k or @alloy?

@svicalifornia
Copy link

This is also a problem on Lion. I have just installed rbenv and ruby-build, and when I install Ruby 2.0.0-p247 with rbenv, I am seeing the problems with Apple's OpenSSL ("Ignore OpenSSL broken by Apple"), and ruby-build is not using its own OpenSSL. Why is this fix for Mountain Lion only?

@svicalifornia
Copy link

This worked:
CONFIGURE_OPTS="--with-openssl-dir=brew --prefix openssl" rbenv install 2.0.0-p247

Would be nice if ruby-build and rbenv would do the right thing in Lion without the env var.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet