HomebrewでPostgreSQLをインストール。linkエラーとpsqlできないエラーを直す
MacでPostgreSQLをインストールする手順と、詰まった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をインストールする際に予めXcodeとXcode Command Line Toolのインストールが必須という記事がよくありますが、追記日現在では特にインストールすること無く上記のコマンドだけでHomebrewのインストールが可能となっています
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側で問題が起きたっぽい。
ググる
- 同様の症状を取り上げている記事を発見。ありがたく参考にさせてもらいながら、エラーを解決した。 参照元:Homebrewインストールのlinkエラーを修正する方法
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でまたエラー
よし、PostgreSQLを使うスタートラインに立ったぞ〜!と超元気になり、- [macOS High Sierra][Homebrew]PostgreSQL のインストールからDB作成までの手順を進める。
psglコマンドを使おうとすると
$ psgl -U${USER} postgres psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"?``
またエラーきたこれ。
色々試した結果、最終的に
initdb
でDBの初期化をしたら直った。$ initdb /usr/local/var/postgres -E utf8
おめでとう。 頭の中では、シンジくんがミサトさん達から拍手されていました、とさ。