Tetrapodkunのブログ

2016年8月1日。会社内から干され、生きるのに困ったTetrapodkunのブログ

libpq-fe.h が見つからなかったお話。

どうも、最近巷では「これからはプログラミングの時代だ!」と流行りに乗っかるミーハー野郎、Tetrapodkunです!

そんなわけで、Herokuを使って試しにデプロイしてみるという事にチャレンジしました。

 

参考にしたのは以下のサイト。

techacademy.jp

 

Herokuとして公開するには、本番環境用となるので、今までのローカルでの環境とは異なってくる。

Heroku → PostgreSQL

ローカル → SQlite

要はDBが違うって事。

 

気合を入れてGemfile を下記のように編集

gem 'sqlite3', group: :development
#本番ではpostgressを使用
gem 'pg', group: :production

これで

$ bundle install

これで完了!と思いきや。。

何やらエラーが。。。

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

遡って見みると、

Can't find the 'libpq-fe.h header

とのこと!

libpq-fe.hがなかった為に、bundle install が失敗した模様。

試しに、libpq-fe.h でgoogle先生に聞いてみるといくつか出できました。

英語のサイトでしたが、下記を参考にしました。

stackoverflow.com

 

解決策として以下がありました。

  • For Ubuntu systems: sudo apt-get install libpq-dev
  • On Red Hat Linux (RHEL) systems: yum install postgresql-devel
  • For Mac Homebrew: brew install postgresql
  • For Mac MacPorts PostgreSQL: gem install pg -- --with-pg-config=/opt/local/lib/postgresql[version number]/bin/pg_config
  • For OpenSuse: zypper in postgresql-devel

※そのまま引用しました!

 

僕は管理ツールでHomebrewを入れてましたので、3番目にしました!

すると、、、

$ brew install postgresql
$bundle install

で、できました!!(パチパチパチパチ)

最後にデータベースの設定。

config/database.yml

production:
  <<: *default
  adapter: postgresql
  encoding: unicode
  pool: 5

これで、データベースの設定が完了です!!

 

ruby の参考サイトが英語ベースのものが多くて大変。。。

開発者は同じ日本人のまつもとさんなのに。

エラーはググって、エラーコードをよく読むようにします。