5

Heroku用のRails3アプリを作成したいと思います。彼らはデータベースとしてPostgresを使用しているので、私はMacPorts経由でpostgres9.0をインストールしました。今、私はpostgres gemが必要であり、パフォーマンス上の理由からpggemが必要であるというコンセンサスがあります。ただし、rvmでgem installを使用してpgをインストールしようとすると、発生するエラーに完全に困惑しています。

私はすべてのpostgresディレクトリを見つける場所を指定することで非常に明確にしていますが、それでもインストールを完了できません。

$ env ARCHFLAGS='-arch x86_64' gem install pg -- \
   --with-pg-config=/opt/local/var/db/postgresql90/defaultdb/postgresql.conf \
   --with-pg-include=/opt/local/include/postgresql90/ \
   --with-pg-lib=/opt/local/lib/postgresql90/

Using config values from /opt/local/var/db/postgresql90/defaultdb/postgresql.conf
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/Users/guy/.rvm/ruby-1.9.2-p136/bin/ruby
    --with-pg
    --without-pg
    --with-pg-dir
    --without-pg-dir
    --with-pg-include=${pg-dir}/include
    --with-pg-lib=${pg-dir}/lib
    --with-pg-config
extconf.rb:24:in ``': Exec format error - /opt/local/var/db/postgresql90/defaultdb/postgresql.conf --includedir (Errno::ENOEXEC)
    from extconf.rb:24:in `<main>'

誰かアイデアがありますか?私は困惑しています。男

4

2 に答える 2

6

私はあなたの問題がここにあると思います:

--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/postgresql.conf

スイッチは--with-pg-configおそらく、pg_configスクリプトがどこにあるかではなく、どこにあるかを知りたいと考えていpostgresql.confます。pg_config(おそらく)下のどこかにスクリプトがあるはずです/opt/local/bin、それはこのようなものの大きな山を生み出すはずです:

BINDIR = /Users/mu/Developer/Cellar/postgresql/9.0.1/bin
DOCDIR = /Users/mu/Developer/Cellar/postgresql/9.0.1/share/doc
HTMLDIR = /Users/mu/Developer/Cellar/postgresql/9.0.1/share/doc
INCLUDEDIR = /Users/mu/Developer/Cellar/postgresql/9.0.1/include
PKGINCLUDEDIR = /Users/mu/Developer/Cellar/postgresql/9.0.1/include
INCLUDEDIR-SERVER = /Users/mu/Developer/Cellar/postgresql/9.0.1/include/server
LIBDIR = /Users/mu/Developer/Cellar/postgresql/9.0.1/lib
PKGLIBDIR = /Users/mu/Developer/Cellar/postgresql/9.0.1/lib
...

あなたがそれを実行するとき。スクリプトは、pg_configさまざまなヘッダーファイルとライブラリがどこにあり、どのコンパイラフラグが必要かを通知します。

「Execformaterror」エラーメッセージはプレゼントです。これは、OSが実行方法を知らない何かを実行しようとしているように聞こえます。また、OSXが任意の構成ファイルを実行する方法を知っているとは思わないでしょう。

于 2011-06-30T07:06:57.127 に答える
2

私が使用する最も簡単な修正:/ opt / local / lib / postgresql90 /bin/を$PATHに追加します。

bashシェルを使用してから、〜/.bashrcで使用するとします。

PATH = / opt / local / lib / postgresql90 / bin:$ PATH

Gemfileの簡単な行:

宝石'pg'

うまくいくでしょう。

于 2011-06-30T11:15:12.037 に答える