9

bundle installVPS (CentOS Linux リリース 7.0.1406 (コア)) で実行するたびに、pg gem のインストール時にエラーが発生します。

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.

次を使用して pg スタンドアロンをインストールできgem install pg -- --with-pg-config=/usr/pgsql-9.4/bin/pg_configます。問題は解決しました。

そのため、VPS の pg_config へのパスを設定した build.pg キーを使用して、デプロイ用の ./bundle/config を作成する capistrano タスクを追加しました。Capistrano では、config/deploy.rbこれが呼び出されますbefore bundler:install

desc "Create bundle config"
task :prepare_bundle_config do
  on roles(:app) do
    within release_path do
      execute :bundle, 'config build.pg --with-pg-config=/usr/pgsql-9.4/bin/pg_config --local'
    end
  end
end

必要なパッケージがインストールされています。

postgresql94-server.x86_64
postgresql94-devel.x86_64
postgresql94-libs.x86_64
libpqxx.x86_64
libpqxx-devel.x86_64

これが私がインストールした capistrano* gems です。

bundle list | grep capistrano
* capistrano (3.3.5)
* capistrano-bundler (1.1.4)
* capistrano-rails (1.1.2)
* capistrano-rbenv (2.0.3)
* capistrano-stats (1.1.1)

bundler を使用して pg を正常にインストールするには、何が欠けていますか? 追加情報が必要な場合はコメントを残してください。この投稿を更新します。

4

4 に答える 4

20

postgres バイナリがパスにありません。それらをパスのディレクトリにシンボリックリンクすると、うまくいくはずです: ln -s /usr/pgsql-9.4/bin/p* /usr/local/bin.

postgres をビルドしたか、yum からインストールしましたか?

于 2015-03-10T18:47:27.457 に答える