Rails 3-pg gemをインストールできません


98

バンドル(バンドルインストール)を実行しようとすると、常に

Installing pg (0.13.2) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /Users/ryan/.rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb 
checking for pg_config... no
No pg_config... trying anyway. If building fails, please try again with
 --with-pg-config=/path/to/pg_config
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** 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/ryan/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
    --with-pg
    --without-pg
    --with-pg-dir
    --without-pg-dir
    --with-pg-include
    --without-pg-include=${pg-dir}/include
    --with-pg-lib
    --without-pg-lib=${pg-dir}/lib
    --with-pg-config
    --without-pg-config
    --with-pg_config
    --without-pg_config


Gem files will remain installed in /Users/ryan/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.13.2 for inspection.
Results logged to /Users/ryan/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.13.2/ext/gem_make.out
An error occured while installing pg (0.13.2), and Bundler cannot continue.
Make sure that `gem install pg -v '0.13.2'` succeeds before bundling.

Mac OS X 10.6を使用しています。インストールされているPostgreSQLのバージョンは9.1です。問題がlibpq-devにあることがわかりました。どうすればインストール/修正できますか?


2
Macにpostgresをどのようにインストールしますか?
しんがら


on_clickインストーラー?フリンク?またはMacPort?
しんがら

私はこの方法でそれをインストールしようとしました:sudo port install libpq-dev、しかし別の問題- Error: Port libpq-dev not found To report a bug, see <http://guide.macports.org/#project.tickets>。それはひどい、それでもいくつかの問題...
user984621

1
この質問を参照してください:[ここ] [1] [1]:stackoverflow.com/questions/10321189/...
banditKing

回答:


78

エラーログに記載されているように、pg_configへのパスを渡す必要があります。以下を使用してgemをインストールしてみてください:

gem install pg -- --with-pg-config= 'PATH_TO_YOUR_PG_CONFIG'

pg_configの場所がわからない場合、およびLinuxまたはMacを使用していると想定すると、次のコマンドを実行できます。

which pg_config

pg-configは、postgresのインストール方法に応じて異なる場所に配置できます。


注意として、Postgresサイトのバイナリパッケージには、開発ヘッダーやpg_configプログラムは含まれていません。
tadman

3
ここからのバイナリパッケージ:enterprisedb.com/products-services-training/pgdownload#osxに、確かにpg_config(たとえば、/Library/PostgreSQL/9.1/bin/pg_config9.1.xの場合)と開発ヘッダーの両方含まれてます。これpgは、開発中のgem をテストするために使用するものです。
マイケルグレンジャー

8
which pg_configよりも速くありませんfind / -name pg_configか?
ジャスティン

コマンドライン引数を少し調整しました。現在のバージョンでバージョンを置き換えることは問題なく動作するはずです。これが私のコマンドラインです:sudo env ARCHFLAGS = "-arch x86_64" gem install pg---with-pg-include = / Library / PostgreSQL / 9.1 / include / --with-pg-lib = / Library / PostgreSQL / 9.1 / lib /
Rod Paddock

13
OSXでは、brewを使用してヘッダーを取得することもできbrew install libpqxx、すべて正常に動作します。
Vetsin 2013

99

Linuxで実行している場合、私にとって何がうまくいったかに興味があるかもしれません。

sudo apt-get install postgresql
sudo apt-get install libpq-dev

その後

gem install pg

その後

bundle install

src:http : //wikimatze.de/installing-postgresql-gem-under-ubuntu-and-mac


1
私の場合と同様にありがとう
-bundle

21
OS X.には適していません
dfrankow

1
2013年11月現在、Ubuntu 13.04を実行しています。
スターカーズ

それが明らかに間違ったOSであるのに、なぜこれはそれほど多くの賛成票を持っているのですか?
sevenseacat 2013

1
@sevenseacatは、使用するOSを明確に示しています。そして明らかに、Linux OSを使用する多くの人々が、この問題を調査したときにこの答えを見つけています。
EE33、

57

Postgress.appを使用している場合は、そのコマンドラインツールにアクセスできます。端末またはPATHプロファイルに次の行を入力します

 PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH"

gem install pgこれで動作するはずです。(これは私のために働いたものです。)

新しいバージョンのパスは次のようになります。

/Applications/Postgres.app/Contents/Versions/<version>/bin

3
本当にありがとう!私は30分を費やして、うまくいかなかったことを調べましたが、最終的にこれがここに埋まっているのを見つけました。:D
ピーターブラウン

1
醸造を必要としない素晴らしいソリューション。
lucian303 2013年

7
Postgre.appパッチが93バージョンで変更されたことに注意してください。現在:/Applications/Postgres93.app/Contents/MacOS/bin
Alain

2
これは私にとってはうまくいきましたが、私のビンは非常に異なる場所にありました-> /ライブラリ/PostgreSQL/9.3/bin
Jeremiah

5
これは現在/Applications/Postgres.app/Contents/Versions/9.3/bin-Postgres.appを使用している場合は9.3.5以降
Ashley


12

libpqを検索します。

brew search libpq

出力する必要があります libpqxx

それをインストールしてみてください:

brew install libpqxx

8

あなただけをインストールする必要がありますlibpq-dev

sudo apt-get install libpq-dev

その後、gemは問題なくインストールされます。


8
OS X.には適していません
dfrankow

私の場合、これだけが役に立ちました。ありがとう!
kovpack 14

7

インストール後の指示に従ってください:http : //postgresapp.com/documentation/configuration-ruby.html

pg gemをインストールするには、(http://postgresapp.com/documentation/cli-tools.htmlで指定されているように)$ PATHが正しく設定されていることを確認してから、次を実行します。

sudo ARCHFLAGS="-arch x86_64" gem install pg

両方のページを読むことを強くお勧めします。ちょうど彼らをすくい取り、私の人生の1時間を失った。それらを読んで、問題を解決してください。


OSX 10.9.5、デフォルトのrubyバージョン2.0、rbenvローカルバージョン1.9.3で動作します。
jlucasps 2015

OSX 10.11で動作します
Yarin

OSX 10.11.4で動作します。ありがとう!!
Martyn Chamberlin

3

私が抱えていた問題は、何らかの理由で/usr/bin/gcc-4.2でコンパイルしようとしていたことでした。mkmf.rb(スタックトレースで確認)のtry_cppを変更して、失敗したコンパイル行で例外を発生させることに気づきました。

私はgccをgcc-4.2にソフトリンクしましたが、うまくいきました:

sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2

なぜgcc-4.2を使用しようとしたのですか?わからない

実際のコンパイル行:

/usr/bin/gcc-4.2 -E -I/Users/dfrankow/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/x86_64-darwin11.4.0 -I/Users/dfrankow/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/ruby/backward -I/Users/dfrankow/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE   -I/usr/local/Cellar/postgresql/9.1.4/include  -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wshorten-64-to-32 -Wimplicit-function-declaration  -fno-common -pipe  conftest.c -o conftest.i (RuntimeError)

3

同じ問題が発生しましたが、Postgresがインストールされていました

/Library/PostgreSQL/9.3

以下を追加して〜/ .bash_profileを更新しました:

export PATH=/Library/PostgreSQL/9.3/bin:$PATH

新しいターミナルを開いて実行bundle updateしてください。ありがとうアリ。


しかし、私が機能するには、バージョンを確認してから、PATH = / Applications / Postgres.app / Contents / Versions / 9.4 / bin:$ PATHをエクスポートする必要があります
Prateep Kul

1

ビルド構成オプションbundle config build.pg --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_configを設定して、オプションgem install pgなしで使用できます(pg_configへのパスは異なる場合があります。これはPostgresapp 9.3.5.0用です)


1

私のopenSUSE13.1 KDEマシンでも同じ問題が発生しました。その問題が発生する前に、パッケージのみpostgresqlpostgresql-server使用してzypperコマンドを使用していました。次に、さらに2つのパッケージをインストールします。

[arup@to_do_app]$ sudo zypper in postgresql-devel postgresql-contrib
root's password:
Loading repository data...
Reading installed packages...
Resolving package dependencies...
#....

その後、私は再び走りましたbundle install、そして成功しました!!!



0

まず、Homebrewのバージョンをアンインストールします。--forceオプションを指定すると、すべてのバージョンがアンインストールされます。

brew rm postgresql --force

バージョンに応じてパスを変更します。

sudo /sbin/SystemStarter stop postgresql-8.4
sudo rm -rf /Applications/PostgreSQL\ 8.4
sudo rm -rf /etc/postgres-reg.ini
sudo rm -rf /Library/StartupItems/postgresql-8.4
sudo rm -rf /Library/PostgreSQL/8.4
sudo dscl . delete /users/postgres

/ etc / profileを編集して、「postgres」を参照する行をすべて削除します。

nano /etc/profile

PostgresSQLをインストールする

brew update
brew install postgresql

de PG GEMをインストールする

gem install pg

それでおしまい。よろしく。


0

まず、libファイルに移動して、ターミナルにpostrgresqlファイルがあるかどうかを確認します。cd〜/ opt / local / lib /に移動し、lsと入力ボタンを入力します。これにより、libディレクトリにあるすべてのファイルのリストが表示されます。

1. postreseqlがない場合は、Macportsからダウンロードできます。sudoポートインストールpostgresql93 @ 9.3.2_1

インストールをバンドルしようとしているフォルダにcdで戻ります

  1. あなたのpgをあなたが持っているあなたのpostgesqlファイルで動作させるか、または今ダウンロードしたgem install pg---with-pg-config = / opt / local / lib / postgresql93 / bin / pg_config

バンドルインストールを実行します



0

El Capitanで私のために機能したのは、rubyをシステムのデフォルトから2.3.1にアップグレードして、pggemに必要な正しいライブラリを見つけたようです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.