15

OSXLionからOSXMountainLionにアップグレードしました。私のレール環境は、ほとんどの場合、無傷のままでした。

物事を良好な状態に戻すために私がしなければならなかった唯一のステップは次のとおりでした:-XCode4.4をインストールします-XCode4.4コマンドラインツールをインストールします-gcc-4.2をインストールします

それで、すべてがうまくいきました。

ここに問題があります。バンドルインストールを実行すると、必要な最も重要なものの1つであるpostgresql gem'pg'を除いて、ほとんどすべてのgemが正しくインストールされます。

また、0.12.2を超えるバージョンでは特に失敗します。

私はルビー1.9.3p125を使用しています。

0.12.2 pgのgemと以下のバージョンを正常に取得できますが、セグメンテーション違反が発生します(使用しているルビーのバージョンが原因だと思います)。

したがって、これは、それがpg gemに固有であり、他のgemが正常にインストールされるように見える私の全体的な環境ではないと私に信じさせます。

また、Postgresqlを再インストールして、postgres環境に問題がなく、その面で問題がないことを確認しました。

誰かが「pg」gemバージョン0.13.0以降(より好ましくは0.14.X)をインストールできましたか?

これが私のスタックトレースです:

Building native extensions.  This could take a while...
ERROR:  Error installing pg:
ERROR: Failed to build gem native extension.

    /Users/caseyli/.rvm/rubies/ruby-1.9.3-p125/bin/ruby extconf.rb
checking for pg_config... yes
Using config values from /usr/bin/pg_config
checking for libpq-fe.h... yes
checking for libpq/libpq-fs.h... yes
checking for pg_config_manual.h... yes
checking for PQconnectdb() in -lpq... yes
checking for PQconnectionUsedPassword()... yes
checking for PQisthreadsafe()... yes
checking for PQprepare()... yes
checking for PQexecParams()... yes
checking for PQescapeString()... yes
checking for PQescapeStringConn()... yes
checking for PQescapeLiteral()... yes
checking for PQescapeIdentifier()... yes
checking for PQgetCancel()... yes
checking for lo_create()... yes
checking for pg_encoding_to_char()... yes
checking for pg_char_to_encoding()... yes
checking for PQsetClientEncoding()... yes
checking for PQlibVersion()... yes
checking for PQping()... yes
checking for rb_encdb_alias()... yes
checking for rb_enc_alias()... no
checking for PGRES_COPY_BOTH in libpq-fe.h... no
checking for struct pgNotify.extra in libpq-fe.h... yes
checking for unistd.h... yes
checking for ruby/st.h... yes
creating extconf.h
creating Makefile

make
compiling pg.c
pg.c: In function ‘pg_s_library_version’:
pg.c:273: warning: implicit declaration of function ‘PQlibVersion’
pg.c: In function ‘Init_pg_ext’:
pg.c:384: error: ‘PQPING_OK’ undeclared (first use in this function)
pg.c:384: error: (Each undeclared identifier is reported only once
pg.c:384: error: for each function it appears in.)
pg.c:386: error: ‘PQPING_REJECT’ undeclared (first use in this function)
pg.c:388: error: ‘PQPING_NO_RESPONSE’ undeclared (first use in this function)
pg.c:390: error: ‘PQPING_NO_ATTEMPT’ undeclared (first use in this function)
make: *** [pg.o] Error 1


Gem files will remain installed in /Users/caseyli/.rvm/gems/ruby-1.9.3-        p125@elliottfarmequipment/gems/pg-0.14.0 for inspection.
4

10 に答える 10

17

Deefour さんのコメント、了解です!それが私がPostgreSQLをインストールした方法でした。

私は PostgreSQL のワンクリック インストーラーを使用していますが、これは、Mountain Lion 用に適切に libpq をセットアップしていないと推測しています。

一方、Homebrew は OS 用に適切にビルドします。

自作でPostgresをインストールした後

brew install postgresql

gem を問題なくインストールできました。

みんなありがとう!

于 2012-07-30T03:29:13.463 に答える
13

問題は pg_config の場所です。ワンクリック インストーラーを使用する場合、それは /Library/PostgreSQL/9.2/bin/pg_config にあるため、gem が問題なくビルドされます。

env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Library/PostgreSQL/9.2/bin/pg_config

于 2012-10-18T03:47:38.177 に答える
4

まったく同じ問題がありました。あなたが投稿したのと同じスタックトレース。

MRI 1.9.3-p286 / OS X 10.8.2 / 自作の Postgres 9.0.4。

私は単純にそれを解決しました:

$ brew update
$ brew upgrade postgresql
$ bundle

それが他の誰かのために働くことを願っています。

于 2012-10-25T15:29:46.963 に答える
2

Mac には古いビルド済みの PostgreSQL クライアント インストールが付属しており、それに付属する pg_config ファイルは、新しい PostgreSQL サーバーおよびクライアントのインストールと競合します。

pg_config の完全修飾ファイル名で ruby​​ gem をインストールすると、pg_config のデフォルトの既知の場所が上書きされ、インストールが成功します。

EnterpriseDB によるワンクリック インストーラーによる pg_config の現在の場所: /Library/PostgreSQL/bin/pg_config

このコマンドは最終的にうまくいきました。

CrashMX2$ gem install pg -- --with-pg-config=/Library/PostgreSQL/bin/pg_config

于 2013-01-05T14:39:35.250 に答える
2

Ruby を再インストールすると、Mountain Lion にアップグレードした後に発生していた同様の問題が修正されました

rvm reinstall 1.9.3

注:デフォルトのバージョンがリセットされるように見えるため、次も実行します

rvm --default 1.9.3

参考までに、以下に表示されていたエラーを投稿しました

gem install pg
Building native extensions.  This could take a while...
ERROR:  Error installing pg:
ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb --with pg=/usr/local/Cellar/postgresql/9.1.4/bin
checking for pg_config... yes
Using config values from /usr/local/bin/pg_config
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** extconf.rb failed ***
于 2012-07-29T22:14:44.217 に答える
1

同じ問題が発生しましたが、postgresqlをhomebrewで再インストールしても解決しませんでした。しかし、このコマンドは私のためにそれをしました:

sudo env ARCHFLAGS="-arch x86_64" gem install pg
于 2012-09-30T18:42:43.170 に答える
1

私はちょうどこのチケットを介して私のものを稼働させました:

バンドルインストールを実行するときに、gemインストールのパラメーターを渡すにはどうすればよいですか?

bundle config build.pg --with-pg-config=/path/to/pg_config
bundle install

Matt、Ranjan、Peter Mellettが言うように、正しいpg_configの場所を取得する必要があります。また、Mountain Lionには、rubygemsとうまく連携しないように見える別の場所が付属しているため、古いバージョンを次のように見つけた場合

/Library/PostgreSQL/bin/pg_config

次に、インストールする前にバンドル構成でそれを設定できます。

私の状況は、ライオンからマウンテンライオンにアップグレードすることでした。

于 2013-03-22T14:01:04.797 に答える
1

Heroku から Postgres.app をインストールし、既存の postgresql インストールを削除することで、動作させることができました。アプリは次の場所からダウンロードできます。

http://postgresapp.com/

brew remove postgresql

bundle install

brew を使用していない場合は、Postgres.app からのアンインストール ドキュメントへのリンクを次に示します。

http://postgresapp.com/documentation#toc_16

于 2013-03-21T13:06:12.820 に答える
0

Kubuntu 13.04 を使用していて、ワンクリック ツールで pg をインストールしている場合、pg config は別のフォルダーにあるため、次のコマンドを実行します。

gem install pg -- --with-pg-config=/opt/PostgreSQL/9.3/bin/pg_config
于 2013-09-09T07:07:18.053 に答える
0

Homebrew が にインストールさpg_ctlれて/usr/local/bin/pg_ctlいるので、コマンドは次のとおりです。

env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/usr/local/bin/pg_ctl
于 2013-05-14T13:59:39.157 に答える