307

Ruby用のPostgreSQLのpg gemをインストールしようとしています。

次のコマンドを発行しました。

gem install pg

RVM を使用して Ruby 1.9.2 をインストールしました。

上記のコマンドを実行すると、次のエラーが表示されます。

エラーは次のとおりです。

Building native extensions.  This could take a while...

ERROR:  Error installing pg:

ERROR: Failed to build gem native extension.

/home/User/.rvm/rubies/ruby-1.9.2-preview3/bin/ruby extconf.rb

checking for pg_config... yes
checking for libpq-fe.h... yes
checking for libpq/libpq-fs.h... yes
checking for PQconnectdb() in -lpq... no
checking for PQconnectdb() in -llibpq... no
checking for PQconnectdb() in -lms/libpq... no
Can't find the PostgreSQL client library (libpq)

*** 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=/home/User/.rvm/rubies/ruby-1.9.2-preview3/bin/ruby
 --with-pg
 --without-pg
 --with-pg-config
 --without-pg-config
 --with-pg-dir
 --without-pg-dir
 --with-pg-include
 --without-pg-include=${pg-dir}/include
 --with-pg-lib
 --without-pg-lib=${pg-dir}/lib
 --enable-static-build
 --disable-static-build
 --with-pqlib
 --without-pqlib
 --with-libpqlib
 --without-libpqlib
 --with-ms/libpqlib
 --without-ms/libpqlib

Gem files will remain installed in /home/user/.rvm/gems/ruby-1.9.2-preview3/gems/pg-0.9.0 for inspection.

Results logged to /home/user/.rvm/gems/ruby-1.9.2-preview3/gems/pg-0.9.0/ext/gem_make.out

何がエラーなのかわからない…

4

19 に答える 19

718

PostgreSQL のヘッダーを含む postgreSQL dev パッケージをインストールする必要があります。

sudo apt-get install libpq-dev
于 2010-06-25T06:56:35.143 に答える
41

2日間読んでスラッシングし、他のメモにある多くのことを試した後、次の1行が、いくつかのMaverickパッケージとRVM(ruby 1.9.2-p290、rvm 1.10.2 ruby​​gems)と混合されたUbuntu Lucid 10.04での治療法でした1.8.15、レール 3.0.1、postgres 8.4.10) :

gem install pg  --   --with-pg-lib=/usr/lib   

結果:

Building native extensions.  This could take a while...  
Successfully installed pg-0.13.1  
1 gem installed  
Installing ri documentation for pg-0.13.1...  
Installing RDoc documentation for pg-0.13.1...  

{はい - ついに成功} !! !私の Ubuntu / Postresql インストールでは、実行中の pg_config の出力に LIBS 変数の項目 -lpq がないことに注意してください!!

そして、なぜ特定の場所で pq から pg に切り替えるのか -- 初心者にはわかりにくい??

私がまだ理解していないのは、 -- と --with( オプションの二重セットですが、とにかく私の深さをはるかに超えています

于 2012-02-17T22:53:13.993 に答える
33

Ubuntuではこれでうまくいきます。

sudo apt-get install libpq-dev

gem install pg  --   --with-pg-lib=/usr/lib 
于 2018-03-06T15:49:31.557 に答える
30

私はUbuntu 12.10を使用しており、次のコマンドを実行しています:

apt-get install libpq-dev

助けてくれました-その後、gem install pg -v "0.14.1"を実行しましたが、今はすべて問題ありません

于 2013-01-15T15:03:05.473 に答える
27

パッケージを追加する必要があります

sudo apt-get install libpq-dev

RoR に pg gem をインストールするには

于 2016-01-08T08:51:39.130 に答える
26

libpq-dev をインストールしてもうまくいきませんでした。build-essential もインストールする必要がありました

sudo apt-get install libpq-dev build-essential
于 2012-09-04T18:40:37.470 に答える
9

.RVM ユーザーの場合は次のようにします。

rvmsudo gem install pg -- --with-pg-lib=/usr/lib 

それは私のために働いた(私がjdupontバージョンを見た後)

于 2012-03-15T17:37:38.057 に答える
7

libpq-dev がインストールされていて、まだこの問題が発生している場合は、OpenSSL の libssl とその仲間のバージョンが競合していることが原因である可能性があります - /usr/lib にある Ubuntu システム バージョン (libpq がビルドされている) と、$ にインストールされている 2 番目のバージョンの RVM HOME/.rvm/usr/lib (または、システム インストールの場合は /usr/local/rvm/usr/lib)。$HOME/.rvm/usr/lib の名前を一時的に変更し、「gem install pg」が機能するかどうかを確認することで、これを確認できます。

この問題を解決するには、システムの OpenSSL ライブラリを使用して rvm を再構築します (rvm/usr/lib ディレクトリから libssl.* と libcrypto.* を手動で削除する必要がある場合があります)。

rvm reinstall 1.9.3 --with-openssl-dir=/usr

これにより、最終的にUbunto 12.04で問題が解決しました。

于 2013-03-26T21:22:46.387 に答える
5

ここでのすべての提案が失敗した後、これはUbuntu 12.04での問題を解決しました。

rvmsudo gem install pg -v '0.12.2' -- --with-pg-lib=/usr/include/postgresql
于 2012-11-07T21:55:34.673 に答える
3

新しくインストールしたUbuntu 16.04でRailsプロジェクトをセットアップしようとしていました。バンドルの実行中に同じ問題に遭遇しました。ランニング

sudo apt-get install aptitude

に続く

sudo apt-get install libpq-dev

私のためにそれを解決しました。

于 2016-09-01T03:59:25.283 に答える
2

Redmine をインストールしようとしている人にとってsudo apt-get install ruby-all-devは、上記のすべてを試した後で失敗しました。

初期エラーはmkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.hです。

于 2016-10-25T10:34:10.273 に答える
2

この問題に対する別の解決策は、Homebrew/linuxbrew を使用して PostgreSQL をインストールすることです。

brew install postgresql

習慣の問題として、必要でない限り sudo を使用したくありません。

于 2015-07-18T03:12:02.793 に答える
1

私は同じ問題を抱えていて、さまざまなバリエーションを試しました。何度か試した後、できるようになりましたがsudo gem install、sudoなしでインストールするにはまだ問題があります。
最後に、私は決定を下しました - rvm の再インストールが役に立ちました。おそらく、他の誰かの時間を節約できます。

于 2013-03-29T12:17:29.000 に答える
1

apt-get install ruby-dev私のために働いた。

于 2018-10-18T02:57:41.047 に答える
0

もう 1 つのオプションは、Linux と macOS で動作するHomebrewを使用して、サポート ライブラリのみをインストールすることです。

brew install libpq

それから

brew link libpq --force

( --forcepostgres 式と競合するため、このオプションは必須です。)

于 2020-03-13T07:42:59.940 に答える