ryotatake blog

Webエンジニア

"Can't find the 'libpq-fe.h header" と言われたときの解決法

Ruby on Rails 5 速習実践ガイド』をやっていて、RailsからPostgreSQLを使うためのgem 「pg」を入れようとしたら、"Can't find the 'libpq-fe.h header"と出てしまったので、その解決策を残しておきます。

環境

起きていた問題

pgをインストールしようとすると、Can't find the 'libpq-fe.h headerと出てインストールできない。

$ gem install pg -v '1.1.4' --source 'https://rubygems.org/'
Building native extensions. This could take a while...
ERROR:  Error installing pg:
        ERROR: Failed to build gem native extension.

    current directory: /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/pg-1.1.4/ext
/home/vagrant/.rbenv/versions/2.5.1/bin/ruby -I /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/site_ruby/2.5.0 -r ./siteconf20190407-19541-1hk741c.rb 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

解決法

libpq-fe.hは、postgresql-devel の中に含まれているようなので、これをインストールします。

$ sudo yum install postgresql-devel

postgresql-develをインストールしてもpgのインストールに失敗する場合は、libpq-fe.hへのパスが通っていない可能性が高いです。以下のコマンドでパスを通してから再度pgのインストールを試してください。

$ export PATH=$PATH:/usr/pgsql-x.x/bin

x.xにはPostgreSQLのバージョンが入ります。私の場合は/usr/pgsql-10/binにありました。

参考

postgresql - How to install libpq-dev on Centos 5.5 - Server Fault