web-dev-qa-db-ja.com

gemのインストールがopensslの失敗で失敗する

OSX Mountain Lionにcocoapods( http://cocoapods.org/ )をインストールしようとしました。

 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)

最初に試した

 rvm reinstall all --force

それから私は試した

 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

それから私は試した

openssl version

まだ(!)は古いバージョンを取得します

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

私は何を間違えていますか? cocoapods gemをインストールするにはどうすればよいですか?

ありがとう


編集、@ sean提案を試してください:

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)

Brew doctorの問題を修正した後の編集(2)

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$ 

/ etc/pathsを変更した後の編集

/ etc/pathファイルを次のように編集しました。

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

ターミナルを完全に閉じて再度開き、それでも古いバージョンのopensslを起動します!

どうして?

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

編集、私の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*

ところで、/ etc/grc.bashrcは私のマシンには存在しないようです。この行と最後のrvm行の両方は、インストールされたスクリプトによって追加されました


編集

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
57
Moshe Marciano

これは、httpsを避け、代わりに安全でないhttpを使用することで修正されます。これを実行するとうまくいきました。

gem source -a http://rubygems.org/
78
Ackshaey Singh
rvm osx-ssl-certs update all

私のためにトリックをしました、Ruby 2.0.0

54
antpaw

http://rubygems.org/ (SSLなし)をソースとして使用してみてください-これでエラーが修正されました。

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

Rvmの現在のリリースは、このことを処理するためにより良い仕事をします。

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

表示された指示に必ず従ってください-それはあなたを助けるためにすべてあります。

25
mpapis

同じエラーが発生しました。修正するには、次のコマンドを実行するだけです(実行したことはありますが、ユーモアがあります)。

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

その後、新しいシェルを開くか、ファイルを入手してください。

更新:

パスを更新するには、/ etc/pathsファイルを編集する必要があるため、次のようにします。

Sudo vim /etc/paths

次のようになります。

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

あなたがしたいことは、/usr/local/binはファイルの先頭にあります。次のように変更します。

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

それがそれを修正することを願っています!

11
Sean

これは私のためにそれを解決したものです:この証明書をインストールします: https://raw.githubusercontent.com/rubygems/rubygems/master/lib/rubygems/ssl_certs/AddTrustExternalCARoot-2048.pem

このフォルダー:{rubyfolder}\lib\Ruby\2.1.0\ruby​​gems\ssl_certs

これにより、安全でないソースを追加する必要がなくなります。

詳細はこちら: https://Gist.github.com/luislavena/f064211759ee0f806c88

10
gijswijs

中国にいる場合は、ソースとして http://Ruby.taobao.org/ を使用してみてください。これでエラーが修正されました。同時に、httpsは避けてください。これを実行するとうまくいきました。

gem sources --remove https://rubygems.org/
gem sources -a http://Ruby.taobao.org/
gem install cocoapods
5
ElonChan

以下は私のためにすべてを機能させました!

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

これが機能しない場合は、既存のrubygemsを削除して、次の手順に従ってください。

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
4
Scotty

Mike Slutskyが説明したように、最初に新しいopensslをインストールできます。 opensslのバージョンを確認するには:

$ openssl version

ここで最新のものを入手してください: http://www.openssl.org/source/ それから、それを設定してインストールします

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

次に、このopensslでRubyを設定します。

$ 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

注:新しいopensslは、$ PATHにある必要はありません。これはRuby 2.0および2.1でうまくいきました。幸運(-:

2
Jan Hegewald

代わりに、ソースからOpenSSLを更新してみてください:

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

ソース

1
Mike S

〜/ .bash_profileのPATH変数に追加するだけで修正しました。

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

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

ターミナルで、nano ~/.bash_profile編集を開始します。

0
BrianHenryIE