"Can't find the 'libpq-fe.h header" と言われたときの解決法
『Ruby on Rails 5 速習実践ガイド』をやっていて、RailsからPostgreSQLを使うためのgem 「pg」を入れようとしたら、"Can't find the 'libpq-fe.h header"と出てしまったので、その解決策を残しておきます。
環境
- CentOS 6.1
- PostgreSQL 10.7
- Ruby 2.5.1
起きていた問題
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