HomebrewでPostgreSQLをインストール。linkエラーとpsqlできないエラーを直す

MacPostgreSQLをインストールする手順と、詰まった2箇所をまとめました。

前提

  • 環境はmac OS High Sierra 10.13.6。
  • インストールするPostgreSQLのバージョンは10.5。
  • パッケージ管理ソフトのHomebrewをインストールしておく。
    • Homebrewインストール方法はターミナルに

        $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
      

    とコピペするだけ。

    Homebrewをインストールする際に予めXcodeXcode Command Line Toolのインストールが必須という記事がよくありますが、追記日現在では特にインストールすること無く上記のコマンドだけでHomebrewのインストールが可能となっています

    引用元:30分でできるRuby on RailsとGitHubやエディタまわりの環境構築

Homebrewを更新

 $ brew update

HomebrewにPostgreSQLをインストール

 $ brew install postgresql

インストール中にエラーが出た

  • ログを詳しく見てみると、末尾にインストールがうまく完了しなかったと書いてあった。
  • もう一度$ brew install postgresqlをしてみると以下のエラーが出た。

      postfresql 10.5 is already installed, it"s just not linked
      You can use `brew link postgresql` to link this version. 
    
  • $ brew doctorしてみると、同様の警告が出た。 Homebrew側で問題が起きたっぽい。

f:id:Usa_Momokawa:20180918000526j:plain
brew doctorの結果

ググる

linkエラーを直す

  • 警告文は2つ。まずは2個目から検証。
  • 記載通りに$ brew link postgresqlをする。

      $ brew link postgresql
      Linking /usr/local/Cellar/postgresql/10.5...
      Error: Could not symlink include /ecpg_config.h
      /usr/local/include is not writeble.
    
  • ついでに/usr/local/の中身を見てみる。

      $ ls /usr/local
      Cellar          bin     opt     var
      Homebrew        etc     share
    
  • $ brew link postgresqlの1つ目の警告にも指摘されているが、includeディレクトリがないことを確認。

足りないディレクトリを作成

  • $ sudo mkdir includeで作成。
  • $ sudo chown $USER:admin includeでユーザー所有権とグループ所有権を修正。

エラーが直るまで修正

  • 再度$ brew link postgresqlしてエラー。

      $ brew link postgresql
      Linking /usr/local/Cellar/postgresql/10.5...
      Error: Could not symlink include /ecpg_config.h
      /usr/local/lib is not writeble.
    
  • こちらも、libディレクトリを作成して権限も修正後、$ brew link postgresql

      Linking /usr/local/Cellar/postgresql/10.5... 378 symlinks created
    
  • $ psql --versionで無事リンクが通ったことを確認。

      $ psql --version
      psql (PostgreSQL) 10.5
    

合わせてbrew doctorの問題も解決

  • $ brew doctorの1つ目の警告文通りに、足りないディレクトリを全て作成した。
  • 複数ディレクトリをまとめて作るには、$ sudo mkdir <ディレクトリ名> <ディレクトリ名>と、スペースを開けて羅列するだけ。

      $ brew doctor
      Your system is ready to brew
    

となればOK。

psqlでまたエラー

またエラーきたこれ。

  • 色々試した結果、最終的にinitdbでDBの初期化をしたら直った。

      $ initdb /usr/local/var/postgres -E utf8
    

参考: MacにPostgreSQLをインストール

f:id:Usa_Momokawa:20180917235914j:plain
PostgreSQLが使えるようになった

おめでとう。 頭の中では、シンジくんがミサトさん達から拍手されていました、とさ。