web-dev-qa-db-ja.com

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

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

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にあることがわかりました。どうすればインストール/修正できますか?

96
user984621

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

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

Pg_configの場所が不明で、LinuxまたはMacを使用していると仮定すると、次のコマンドを実行できます。

which pg_config

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

78
Ethan

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

98
E.E.33

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

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

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

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

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

自作の場合は、次のように入力します。

$ postgresqlをインストールする

お持ちでない場合は、ターミナルに次のように入力してダウンロードしてください。

Ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install )"

21
user2373148

Libpqを検索:

brew search libpq

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

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

brew install libpqxx
12
jlucasps

libpq-devのみをインストールする必要があります:

Sudo apt-get install libpq-dev

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

7
Travis Reeder

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

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

Sudo ARCHFLAGS="-Arch x86_64" gem install pg

強く両方のページを読むことをお勧めします。ただそれらをざっと見て、私の人生の1時間を失った。それらを読んで、問題を解決しました。

7
CGK

私が抱えていた問題は、何らかの理由で/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
dfrankow

同じ問題が発生しましたが、Postgresをインストールしました

/Library/PostgreSQL/9.3

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

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

新しいターミナルを開いてbundle updateを実行すると、うまくいきました。ありがとうアリ。

3

OpenSUSE13.1 KDEマシンでも同じ問題が発生しました。その問題が発生する前に、postgresqlコマンドを使用してパッケージzypperおよびpostgresql-serverのみをインストールしていました。次に、さらに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を実行し、成功しました!!!

1
Arup Rakshit

ビルド構成オプション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

最初に、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
pabloverd

El Capitanで私にとってうまくいったのは、Rubyをシステムのデフォルトから2.3.1にアップグレードすることで、pg gemが必要とする正しいライブラリを見つけたようです。

0
Abe Petrillo

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
user3256740

Fedoraの場合:

dnf install postgresql-devel
0

動作するOSXソリューションについては、このガイドを参照してください http://krugerdavid.com/journal/how-to-install-xcode-homebrew-git-rvm-postgresql-Ruby-1-9-3-on-snow-ヒョウ/

Homebrewを使用してPostgreSQLをインストールする手順を説明します。 OSX 10.8.3、PostgreSQL 9.2.3、およびRuby 2.0.0-p0でテストおよび動作

0
Kristofor Carle