Gemのpgのインストール中にエラーが出てインストールできなかったときに、どのような方法でインストールを成功させたのかまとめました。

概要

RailsでデータベースにPostgreSQLを使うために、pgというGemをインストールしようとしたら下記のエラーが出ました。

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

ちなみに、私の環境では、インストールしようとしていたpgのバージョンが0.18.4なので、「pg (0.18.4)」と表示されています。なので、環境によってはこの部分の表示が変わると思います。

このエラーが表示される前の部分に、詳細なエラーの原因が書かれています。

Installing pg 0.18.4 with native extensions

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header

*** extconf.rb failed ***
extconf failed, exit code 1

これはエラーの抜粋なので、実際はもっと長い説明になっています。

ここから読み取ることができるのは、libpq-fe.hというヘッダーファイルがないためpgのビルドができないということです

解決方法

このことから、libpq-fe.hというヘッダーファイルをインストールすれば解決するということがわかります。

下記に、libpq-fe.hをインストールするコマンドを示します。

DebianやUbuntuなどのパッケージ管理システムにAPTを使っている場合です。

apt-get install postgresql-9.4 libpq-dev

CentOSなどのパッケージ管理システムにYumを使っている場合です。

yum install postgresql94 postgresql94-devel

これで、libpq-fe.hのインストールは終了です。

最後に、pgのインストールをもう一度します。

Railsを使っている場合は、Gemfileに書いてあると思うので、bundle install というコマンドを実行すればインストールされます。

Gemfileを使っていない場合は、gem install pg というコマンドを実行すればインストールされます。

さいごに

解決方法が見つからなくて、解決まで時間がかかってしまいました。