質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

91.87%

  • Ruby

    3980questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • Ruby on Rails 4

    1892questions

    Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

「gem install pg」を実行すると「Symbol not found: _SSLv2_client_method」エラーが出て先に進めません。

解決済

回答 3

投稿 2014/09/28 02:48 ・編集 2014/09/28 02:48

  • 評価
  • クリップ 1
  • VIEW 5,860

toshi0607

score 48

Herokuにサンプルアプリを上げるにあたり、postgreSQLをインストールしようとしています。
brew install postgresql は通りました。しかし、

gem install pgを実行すると下記のエラーが出ます。

ERROR:  Loading command: install (LoadError)
    dlopen(/Users/XxxxxXxxxx/.rbenv/versions/2.0.0-p195/lib/ruby/2.0.0/x86_64-darwin13.2.0/openssl.bundle, 9): Symbol not found: _SSLv2_client_method
  Referenced from: /Users/XxxxxXxxxx/.rbenv/versions/2.0.0-p195/lib/ruby/2.0.0/x86_64-darwin13.2.0/openssl.bundle
  Expected in: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
 in /Users/XxxxxXxxxx/.rbenv/versions/2.0.0-p195/lib/ruby/2.0.0/x86_64-darwin13.2.0/openssl.bundle - /Users/XxxxxXxxxx/.rbenv/versions/2.0.0-p195/lib/ruby/2.0.0/x86_64-darwin13.2.0/openssl.bundle
ERROR:  While executing gem ... (NoMethodError)
    undefined method `invoke_with_build_args' for nil:NilClass

それに対し、下記の処理をしたものの、已然エラーは変わりません…。

ARCHFLAGS="-arch x86_64" gem install pg

gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config

RUBY_CONFIGURE_OPTS=--with-openssl-dir=/usr/local/Cellar/openssl/1.0.1e rbenv install 2.1.0-dev

brew link openssl --force

※Gemfileの設定
# Heokuの本番(production)環境ではPostgresqlを使用する
gem 'sqlite3', :group => [:development, :test]
gem 'pg', :group => [:production]

# コメントアウト
gem 'therubyracer', platforms: :ruby
gem 'execjs'

解決策を教えていただけましたら幸いです。よろしくお願いします。
  • 気になる質問をクリップする

    クリップした質問に回答があった場合に通知・メールを受け取ることができます。

    クリップした質問はマイページの「クリップ」タブからいつでも見ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

+4

まず。環境は Mac OS X で、 Homebrew で rbenv と ruby-install を使って Ruby をインストールしている環境と思うのですが、そこは間違っていないでしょうか(環境が提示されていないと適切な解決法を示せませんので)。
最初の Ruby のバージョンが 2.0.0-p195 で gem install pg を実行するとエラーが出たわけですよね。
私の経験では 
dlopen … : Symbol not found: _SSLv2_client_method
というのは OpenSSL がうまく扱えない状況(OpenSSL を扱えない環境でインストールした等)でエラーが出た覚えがあります。
なのでOpenSSLを扱うように指定する RUBY_CONFIGURE_OPTS=--with-openssl-dir=/usr/local/Cellar/openssl/1.0.1e rbenv install 2.1.0-dev とやったのはほぼ良いと思うのですが、なぜいま入っている 2.0.0-p195 ではなく 2.1.0-dev をインストールしているのか分からないです(どこかに書いていたのをそのまま入力したのでしょうか)。その後 rbenv local 2.1.0-dev とかはやったのでしょうか。
また、 brew link openssl --force を実行した時にはエラー無く実行されたのでしょうか。
全てにおいてですが、実行したことを書いていても、その結果(ログ)が無いので正常だったのか異常だったのか分からないです。

前置きはこれぐらいで、以下に手順を示します(私も実際に実行しました @ MacBook Pro/Retina 13", OS X 10.9.5)。過去の遺産は捨てて、きれいさっぱり最新の 2.1.3 を入れましょう(もちろん他のバージョンでも良いですけどね)。
まず OpenSSL を(念のために)強制インストールします。続いて、 Homebrew でインストールした OpenSSL ライブラリの場所を指定して Ruby 2.1.3 を インストールします。
$ brew install -f openssl
$ RUBY_CONFIGURE_OPTS="--with-openssl-dir=`brew --prefix openssl`" rbenv install 2.1.3
インストール後に、インストールした Ruby を rbenv で選択し、ちゃんと OpenSSL ライブラリが使えるようにインストールされているか確認します。
$ rbenv global 2.1.3
$ ruby -ropenssl -e 'p RUBY_VERSION, OpenSSL::OPENSSL_VERSION'
"2.1.3"
"OpenSSL 1.0.1i 6 Aug 2014"
実行した Ruby のバージョンと OpenSSL ライブラリのバージョンが返ってきます。
最新の OpenSSL は 1.0.1i なので、全く同じように返ってくると思います。
続いて pg gem を入れます。(私の環境では ri や rdoc をインストールしないよう設定しているので、若干異なるかも知れません。)
$ gem install pg
Fetching: pg-0.17.1.gem (100%)
Building native extensions.  This could take a while...
Successfully installed pg-0.17.1
1 gem installed
必要があれば rbenv rehash してください(私の環境では rbenv-gem-rehash を入れているので gem install したあとの rbenv rehash は不要です)。
念のために、 pg gem が動くかどうか、バージョンを表示させてみます。
$ ruby -rpg -e 'p PG::VERSION'
"0.17.1"
もしこれでインストール出来ないのであれば、入力したコマンドを含めたエラーログを貼り付けてください。

投稿 2014/09/30 23:47

2014/09/30 23:49

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    以下のような回答は評価を下げられます

    • 間違っている回答
    • 質問の回答になっていない投稿
    • 不快な投稿

    評価を下げる際はその理由をコメントに書き込んでください。

  • 2014/09/30 23:59

    ご回答いただきありがとうございました。
    中身を理解せずに実行してしまっていた部分の理解も深まりました。
    大変感謝しております。

    キャンセル

0

google で "Symbol not found: _SSLv2_client_method" を検索すると、Stackoverflow のこんなページがヒットしました。
- Ruby Bundle Symbol not found: _SSLv2_client_method (LoadError) http://stackoverflow.com/questions/25492787/ruby-bundle-symbol-not-found-sslv2-client-method-loaderror

ここの Answer を参照したり、他のヒットするページを参照してみては如何でしょう。

投稿 2014/09/28 03:01

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    以下のような回答は評価を下げられます

    • 間違っている回答
    • 質問の回答になっていない投稿
    • 不快な投稿

    評価を下げる際はその理由をコメントに書き込んでください。

  • 2014/09/28 11:05

    ご回答ありがとうございます。記載いただいたページ含め、stackoverflowは全て確認しました。rbenvを使っているのでrvm系のコマンドは試しておりませんが…

    キャンセル

  • 2014/09/29 00:50

    私も rbenv をつかっていますが、ご質問のような現象はでていません。
    ちなみに私のマシンでの状況を以下に示します。(OS は MaxOSX 10.9.5)

    $ which ruby
    /Users/katoy/.rbenv/shims/ruby

    $ ruby -v
    ruby 2.1.3p242 (2014-09-19 revision 47630) [x86_64-darwin13.0]

    $ gem install pg
    Building native extensions. This could take a while...
    Successfully installed pg-0.17.1
    1 gem installed

    $ brew info postgresql
    postgresql: stable 9.3.5 (bottled), devel 9.4beta2
    http://www.postgresql.org/
    Conflicts with: postgres-xc
    /usr/local/Cellar/postgresql/9.3.4 (2928 files, 39M)
    Poured from bottle
    /usr/local/Cellar/postgresql/9.3.5 (2927 files, 39M)
    Poured from bottle
    /usr/local/Cellar/postgresql/9.3.5_1 (2927 files, 39M) *
    Poured from bottle
    From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/postgresql.rb
    ==> Dependencies
    Required: openssl ✔, readline ✔
    Recommended: ossp-uuid ✔
    ==> Options
    --32-bit
    Build 32-bit only
    --enable-dtrace
    Build with DTrace support
    --no-perl
    Build without Perl support
    --no-tcl
    Build without Tcl support
    --with-python
    Build with python support
    --without-ossp-uuid
    Build without ossp-uuid support
    --devel
    install development version 9.4beta2
    ==> Caveats
    If builds of PostgreSQL 9 are failing and you have version 8.x installed,
    you may need to remove the previous version first. See:
    https://github.com/Homebrew/homebrew/issues/issue/2510

    To migrate existing data from a previous major version (pre-9.3) of PostgreSQL, see:
    http://www.postgresql.org/docs/9.3/static/upgrading.html

    When installing the postgres gem, including ARCHFLAGS is recommended:
    ARCHFLAGS="-arch x86_64" gem install pg

    To install gems without sudo, see the Homebrew wiki.

    To have launchd start postgresql at login:
    ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents
    Then to load postgresql now:
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
    Or, if you don't want/need launchctl, you can just run:
    postgres -D /usr/local/var/postgres

    d)
    http://openssl.org

    This formula is keg-only.
    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.

    /usr/local/Cellar/openssl/1.0.1g (429 files, 15M)
    Poured from bottle
    /usr/local/Cellar/openssl/1.0.1h (429 files, 14M)
    Poured from bottle
    /usr/local/Cellar/openssl/1.0.1i (430 files, 15M)
    Poured from bottle
    From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/openssl.rb
    ==> Dependencies
    Build: makedepend ✘
    ==> Options
    --universal
    Build a universal binary
    --without-check
    Skip build-time tests (not recommended)
    ==> Caveats
    A CA file has been bootstrapped using certificates from the system
    keychain. To add additional certificates, place .pem files in
    /usr/local/etc/openssl/certs

    and run
    /usr/local/opt/openssl/bin/c_rehash

    キャンセル

  • 2014/09/30 09:50

    Ruby 2.1.2以降にする必要があると書いてあるように見受けられます。
    Rubyのバージョンが古いのではないでしょうか?

    キャンセル

  • 2014/10/01 00:00

    丁寧に教えていただきありがとうございました。
    rubyを最新版にすることでエラーが解消されました。

    >TaMaMhyu様
    ご指摘の通りでした。ありがとうございます。

    キャンセル

  • 2014/10/01 15:47

    単に 2.0.0-p195 の環境がおかしかっただけでしょう。
    私が常用している、バージョンが古い 1.9.3 でも pg gem のバージョン 0.17.1 は問題なくインストールできました。

    キャンセル

0

rubyを最新版にすることで解消しました。

rbenv install 2.1.2

rbenv global 2.1.2

ご協力いただきありがとうございました。

投稿 2014/09/30 23:58

2014/10/01 00:05

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    以下のような回答は評価を下げられます

    • 間違っている回答
    • 質問の回答になっていない投稿
    • 不快な投稿

    評価を下げる際はその理由をコメントに書き込んでください。

15分調べてもわからないことは、teratailで質問しよう!

ただいまの回答率

91.87%

関連した質問

同じタグがついた質問を見る

  • Ruby

    3980questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • Ruby on Rails 4

    1892questions

    Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

関連ワード: symbol not found: _sslv2_client_method _sslv2_client_method

閲覧数の多いRubyの質問

  • トップ
  • Rubyに関する質問
  • 「gem install pg」を実行すると「Symbol not found: _SSLv2_client_method」エラーが出て先に進めません。