8

ローカルでPostgreSQLを使ってRuby on Railsで開発しようとしているので、pg gemをインストールしようとしています。Ubuntu 12.04 で。ターミナルで、次のように入力しました。

gem install pg -v '0.12.2'

次のエラーがスローされます。

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

        /home/troyshu/.rvm/rubies/ruby-1.9.3-p194/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... 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
    --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/troyshu/.rvm/rubies/ruby-1.9.3-p194/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
    --with-pqlib
    --without-pqlib
    --with-libpqlib
    --without-libpqlib
    --with-ms/libpqlib
    --without-ms/libpqlib


Gem files will remain installed in /home/troyshu/.rvm/gems/ruby-1.9.3-p194/gems/pg-0.14.1 for inspection.
Results logged to /home/troyshu/.rvm/gems/ruby-1.9.3-p194/gems/pg-0.14.1/ext/gem_make.out

興味深いことに、コマンドに sudo を追加すると機能します。

$ sudo gem install pg -v '0.12.2'
Building native extensions.  This could take a while...
Successfully installed pg-0.12.2
1 gem installed

ところで、上記のコマンドを機能させるには、「sudo apt-get install ruby​​1.9.1-dev」を実行する必要がありました。しかし、「バンドルのインストール」が機能しないため、まだ開発を行うことができません (そして、「gem install pg -v '0.12.2' を実行するように指示し続けます)」

「gem install pg」がつまずいているような気がします

checking for PQconnectdb() in -lpq... no
checking for PQconnectdb() in -llibpq... no
checking for PQconnectdb() in -lms/libpq... no

しかし、Ubuntu と RoR の完全な初心者として、私にはその理由がわかりません。特定のケースの解決策を見つけることができなかったので、私の検索スキルも悪臭を放っているのかもしれません。うまくいけば、修正がありますか?

ありがとう!

4

8 に答える 8

4

関連: gem install pg は libpq にバインドできません。mkmf ログを確認し、libssl でエラーを探してください。私はまったく同じ問題を抱えていました。libpq-dev をインストールし、pg_config を再確認しました。gem は libpq-dev ヘッダー ファイルを見つけたものの、libpq とのリンクに失敗したようです。rvm が ssl 用にインストールしたパッケージが、libssl-dev を介してインストールされたパッケージと何らかの形で干渉していることが判明しました。

于 2012-09-30T01:44:33.623 に答える
1

投稿されたエラー メッセージに基づくと、libpq-devインストールされていないようです。apt-get install libpq-dev(そうでsudoない場合は)試してrootから、gemをインストールしてください。

RVM を使用sudoしているため、gem をインストールするために使用する必要がある場合は、それが間違っています。sudoRVM を使用してインストールした Ruby ではなく、システムの Ruby を使用するための gem をインストールします。

于 2012-09-22T01:36:33.830 に答える
1

私は奇妙な解決策を見つけましたが、他のすべての提案ではなく、私にとってはうまくいきました:

mv ~/.rvm/usr/lib ~/.rvm/usr/lib_rvm 
于 2013-03-11T16:04:19.660 に答える
0

sudo が機能し、標準ユーザーが機能しない場合、これは、他のユーザーとしては見つからないライブラリとヘッダー ファイルのセットをどこかで見つけているか、実際には別の場所で適切に処理されていないアクセス許可の問題があることを示唆しています。必要に応じて、おそらく strace を使用して問題の根本を見つけることができます。

ただし、より健全な解決策は、とにかくこのような多くのものをインストールするにはおそらくルートアクセスが必要であることを認識することだと思います。

于 2012-09-30T01:38:08.057 に答える
0

失敗した同様の問題がありましたbundle install

Installing pg 0.17.1 with native extensions

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

...

An error occurred while installing pg (0.17.1), and Bundler cannot continue.
Make sure that `gem install pg -v '0.17.1'` succeeds before bundling.

しかし、とgem install pg -v '0.17.1'

gem は正常にインストールできましたが、バンドルは失敗します。

pgバンドル構成を変更して修正しました:

  1. pg 構成を確認します。

    $ which pg_config戻り値:

    /usr/local/bin/pg_config

  2. 現在のバンドル ビルド オプションを確認するpg

$ bundle config build.pg

  1. によって返された値でない場合which pg_config

$ bundle config build.pg --with-pg-config=/usr/local/bin/pg_config

今すぐ試してみてくださいbundle install!!!!

于 2015-10-10T17:46:48.130 に答える
0

私にとっては、rvmrvm の Web サイト ( https://rvm.io ) の指示に従ってインストールするだけでうまくいきました。Ubuntu 14.04で動作させることができました。

この日付での完全なコマンド リスト:
sudo gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

ダウンロード可能なディレクトリにいることを確認してから、次を実行します。
\curl -sSL https://get.rvm.io | bash -s stable

于 2017-09-05T16:27:50.183 に答える
-2

これを行うとsudo gem install pg、rubyとpostgresqlがインストールされている場所にgemがインストールされます。あなたがするときgem install pg、gemはあなたのホームディレクトリにインストールされます(あなたのメッセージを見てください!)。sudo bundle install blah-blah-blahしたがって、ローカルでの作業方法を考えると、すべての宝石に対して行う必要があります。もちろん、私が使用していないRVMのような他のオプションもあります。

于 2012-09-21T14:28:57.610 に答える