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

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

新規登録して質問してみよう
ただいま回答率
85.37%
Ruby

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

Ruby on Rails 4

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

Q&A

解決済

3回答

10240閲覧

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

toshi0607

総合スコア56

Ruby

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

Ruby on Rails 4

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

0グッド

1クリップ

投稿2014/09/27 17:48

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

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

lang

1ERROR: Loading command: install (LoadError) 2 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 3 Referenced from: /Users/XxxxxXxxxx/.rbenv/versions/2.0.0-p195/lib/ruby/2.0.0/x86_64-darwin13.2.0/openssl.bundle 4 Expected in: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib 5 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 6ERROR: While executing gem ... (NoMethodError) 7 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の設定

lang

1# Heokuの本番(production)環境ではPostgresqlを使用する 2gem 'sqlite3', :group => [:development, :test] 3gem 'pg', :group => [:production] 4 5# コメントアウト 6gem 'therubyracer', platforms: :ruby 7gem 'execjs'

解決策を教えていただけましたら幸いです。よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

まず。環境は 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 14:47

riocampos

総合スコア241

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

toshi0607

2014/09/30 14:59

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

0

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

rbenv install 2.1.2

rbenv global 2.1.2

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

投稿2014/09/30 14:58

toshi0607

総合スコア56

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

google で "Symbol not found: _SSLv2_client_method" を検索すると、Stackoverflow のこんなページがヒットしました。

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

投稿2014/09/27 18:01

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

toshi0607

2014/09/28 02:05

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

2014/09/28 15: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
TaMaMhyu

2014/09/30 00:50

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

2014/09/30 15:00

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

2014/10/01 06:47

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問