gem install fails with openssl failure

匿名 (未验证) 提交于 2019-12-03 01:54:01

问题:

I tried to install cocoapods (http://cocoapods.org/) on my OSX Mountain Lion.

 moshe-mbp:~ moshem$ gem install cocoapods  ERROR:  Could not find a valid gem 'cocoapods' (>= 0), here is why:       Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0      state=SSLv3 read server key exchange B: bad ecpoint (https://rubygems.org/latest_specs.4.8.gz)

first I tried

 rvm reinstall all --force

then I tried

 brew upgrade openssl      ==> Upgrading openssl     ==> Downloading http://openssl.org/source/openssl-1.0.1e.tar.gz     Already downloaded: /Library/Caches/Homebrew/openssl-1.0.1e.tar.gz     ==> perl ./Configure --prefix=/usr/local/Cellar/openssl/1.0.1e --openssldir=/usr/local/etc/openssl zlib-dynamic shared d     ==> make     ==> make test     ==> make install MANDIR=/usr/local/Cellar/openssl/1.0.1e/share/man MANSUFFIX=ssl     ==> Caveats     To install updated CA certs from Mozilla.org:          brew install curl-ca-bundle      This formula is keg-only: so it was not symlinked into /usr/local.      Mac OS X already provides this software and installing another version in     parallel can cause all kinds of trouble.      The OpenSSL provided by OS X is too old for some software.      Generally there are no consequences of this for you. If you build your     own software and it requires this formula, you'll need to add to your     build variables:          LDFLAGS:  -L/usr/local/opt/openssl/lib         CPPFLAGS: -I/usr/local/opt/openssl/include      ==> Summary     ?  /usr/local/Cellar/openssl/1.0.1e: 429 files, 15M, built in 5.1 minutes

I then tried

openssl version

and still(!) gets the older version

moshe-mbp:~ moshem$ openssl version OpenSSL 0.9.8r 8 Feb 2011 moshe-mbp:~ moshem$ 

what am I doing wrong? how can I install the cocoapods gem?

thanks


EDIT, trying @sean suggestion:

moshe-mbp:~ moshem$ brew update Updated Homebrew from 672af665 to 10b4d426. ==> Updated Formulae bash        wireshark moshe-mbp:~ moshem$ brew install openssl Error: openssl-1.0.1e already installed moshe-mbp:~ moshem$ brew link openssl --force Linking /usr/local/Cellar/openssl/1.0.1e... 1139 symlinks created moshe-mbp:~ moshem$ brew install curl-ca-bundle Error: curl-ca-bundle-1.87 already installed moshe-mbp:~ moshem$  moshe-mbp:~ moshem$ openssl version OpenSSL 0.9.8r 8 Feb 2011 moshe-mbp:~ moshem$ gem install cocoapods ERROR:  Could not find a valid gem 'cocoapods' (>= 0), here is why:           Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=SSLv3 read server key exchange B: bad ecpoint (https://rubygems.org/latest_specs.4.8.gz)

EDIT (2) after fixing issues with brew doctor

moshe-mbp:~ moshem$ gem install cocoapods ERROR:  Could not find a valid gem 'cocoapods' (>= 0), here is why:           Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=SSLv3 read server key exchange B: bad ecpoint (https://rubygems.org/latest_specs.4.8.gz) moshe-mbp:~ moshem$ openssl version OpenSSL 0.9.8r 8 Feb 2011 moshe-mbp:~ moshem$ brew update Updated Homebrew from 10b4d426 to 6a00bc3c. ==> Updated Formulae clozure-cl  python  python3 moshe-mbp:~ moshem$ brew install openssl Error: openssl-1.0.1e already installed moshe-mbp:~ moshem$  moshe-mbp:~ moshem$ echo $PATH /Users/moshem/.rvm/gems/ruby-2.0.0-p0/bin:/Users/moshem/.rvm/gems/ruby-2.0.0-p0@global/bin:/Users/moshem/.rvm/rubies/ruby-2.0.0-p0/bin:/Users/moshem/.rvm/bin:/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin:/tools:/platforms:/platform-tools: moshe-mbp:~ moshem$ 

EDIT after altering the /etc/paths

I edited the /etc/path files to:

/usr/local/bin /usr/bin /bin /usr/sbin /sbin

closed terminal completly and reopend and it still launches the old version of openssl!

why?

moshe-mbp:~ moshem$ env $PATH env: /Users/moshem/.rvm/gems/ruby-2.0.0-p0/bin:/Users/moshem/.rvm/gems/ruby-2.0.0-p0@global/bin:/Users/moshem/.rvm/rubies/ruby-2.0.0-p0/bin:/Users/moshem/.rvm/bin:/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin:/tools:/platforms:/platform-tools

EDIT, my bash_profile

source "`brew --prefix grc`/etc/grc.bashrc"  export PATH=${JAVA_HOME}/bin:$PATH export PATH="$PATH:$ANDROID_SDK/tools:$ANDROID_SDK/platforms:$ANDROID_SDK/platform-tools:$ANDROID_NDK"  [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

BTW, the /etc/grc.bashrc doesn't seem to exist on my machine. both this line and the rvm line at the end were added by installed scripts


EDIT

moshe-mbp:~ moshem$ rvm pkg install openssl  Fetching openssl-1.0.1c.tar.gz to /Users/moshem/.rvm/archives Extracting openssl to /Users/moshem/.rvm/src/openssl-1.0.1c Configuring openssl in /Users/moshem/.rvm/src/openssl-1.0.1c. Compiling openssl in /Users/moshem/.rvm/src/openssl-1.0.1c. Installing openssl to /Users/moshem/.rvm/usr  Please note that it's required to reinstall all rubies:      rvm reinstall all --force  Updating openssl certificates moshe-mbp:~ moshem$ openssl version OpenSSL 1.0.1e 11 Feb 2013   moshe-mbp:~ moshem$ gem source -r http://rubygems.org/ http://rubygems.org/ removed from sources moshe-mbp:~ moshem$ gem source -a https://rubygems.org/ Error fetching https://rubygems.org/:     SSL_connect returned=1 errno=0 state=SSLv3 read server key exchange B: bad ecpoint (https://rubygems.org/specs.4.8.gz) moshe-mbp:~ moshem$ gem install cocoapods ERROR:  Could not find a valid gem 'cocoapods' (>= 0) in any repository

回答1:

This is fixed by avoiding https and using the insecure http instead. Running this worked for me.

gem source -a http://rubygems.org/


回答2:

rvm osx-ssl-certs update all

did the trick for me, ruby 2.0.0



回答3:

Try using http://rubygems.org/ (without SSL) as a source ― that fixed the error for me.

gem source -r https://rubygems.org/ gem source -a http://rubygems.org/ gem install cocoapods


回答4:

Current release of rvm does a lot better job handling this things, run:

rvm get head rvm reload rvm autolibs enable rvm reinstall 1.9.3 --disable-binary

Make sure to follow any displayed instructions - it's all there to help you.



回答5:

This is what solved it for me: Install this certificate: https://raw.githubusercontent.com/rubygems/rubygems/master/lib/rubygems/ssl_certs/AddTrustExternalCARoot-2048.pem

In this folder: {rubyfolder}\lib\ruby\2.1.0\rubygems\ssl_certs

This way you don't have to add insecure sources.

More info here: https://gist.github.com/luislavena/f064211759ee0f806c88



回答6:

I had the same error. To fix just run the following commands (I know you've ran some but humor me):

brew update brew install openssl brew link openssl --force brew install curl-ca-bundle

After that, open a new shell or source your files and all should be good to go :)

UPDATE:

To update your paths you'll need to edit your /etc/paths file so do something like:

sudo vim /etc/paths

In there is should look something like:

/usr/bin /bin /usr/sbin /sbin /usr/local/bin

What you want to do is to ensure that /usr/local/bin is at the top of the file. So change it to something like:

/usr/local/bin /usr/bin /bin /usr/sbin /sbin

Hope that fixes it!



回答7:

If you are in China??, try using http://ruby.taobao.org/ as a source ― that fixed the error for me. At the same time,avoid https. Running this worked for me.

gem sources --remove https://rubygems.org/ gem sources -a http://ruby.taobao.org/ gem install cocoapods


回答8:

The following got everything working for me!

rvm get stable  brew update  brew install libyaml brew install pkg-config  brew install libxml2  brew install libxslt  brew install openssl brew link openssl --force  brew install sqlite  brew install apple-gcc42  rvm install 2.0.0 --with-gcc=gcc-4.2

If this doesn't work, remove your existing rubygems and follow this:

rvm remove 2.0.0 rvm get head --autolibs=3 rvm requirements  #At this point, brew install anything that's missing, like apple-gcc42.  rvm install 2.0.0 --with-gcc=gcc-4.2


回答9:

You can first install a newer openssl, as Mike Slutsky described. To check your openssl version:

$ openssl version

Get a more recent one here: http://www.openssl.org/source/ Then configure and install it:

$ cd openssl-1.0.1f_src/ $ ./Configure --prefix=/Users/me/bin/openssl-1.0.1f_bin darwin64-x86_64-cc $ make install

Now configure ruby with this openssl:

$ cd ruby-2.1.0_src/ $ ./configure --with-openssl-dir=/Users/me/bin/openssl-1.0.1f_bin --prefix=/Users/me/bin/ruby-2.1.0_bin

Note: the new openssl does not need to be on you $PATH. This worked for me with ruby 2.0 and 2.1. Good luck (-:



回答10:

You can try to update OpenSSL from source instead:

curl -L -O http://www.openssl.org/source/openssl-1.0.1b.tar.gz.asc curl -L -O http://www.openssl.org/source/openssl-1.0.1b.tar.gz gpg --verify openssl-1.0.1b.tar.gz.asc tar xvzf openssl-1.0.1b.tar.gz cd openssl-1.0.1b perl ./Configure shared zlib --prefix=/opt/local darwin64-x86_64-cc make make test sudo make install

source



回答11:

I fixed it by only appending to the PATH variable in my ~/.bash_profile, which in my case meant changing

export PATH="/usr/local/mysql/bin:$PATH" export PATH=$M2:$PATH export PATH=$JAVA_HOME/bin:$PATH

to

export PATH="$PATH:/usr/local/mysql/bin" export PATH=$PATH:$M2 export PATH=$PATH:$JAVA_HOME/bin

In terminal, type nano ~/.bash_profile to start editing.



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!