web-dev-qa-db-ja.com

Homebrew経由でインストールされたPostgresを起動しようとしたときにエラーが発生しました:操作は許可されていません

最近、MacにHomebrewを介してPostgresをインストールしました。 (すでにインストールされている可能性がありますが、実行されていませんでした)

brew install postgres
ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents

今、私はそれをlaunchctlで始めようとしています:

launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

...しかし、エラーが発生します:

/usr/local/Cellar/postgresql/9.4.0/homebrew.mxcl.postgresql.plist: Operation not permitted

このエラーはどういう意味ですか?何が悪いのですか?どうすれば問題を解決できますか?

24
Andrew

TmuxまたはScreen内でlaunchctlを使用している可能性があります。

TmuxおよびScreenターミナルマルチプレクサーは、単一のターミナルで簡単に切り替えることができる複数の「スクリーン」を生成します。

私にはわからない何らかの理由で、Tmux内でlaunchctlを実行しても機能せず、エラーOperation not permittedが発生します。通常のシェル内で実行すると、おそらく正常に動作します。

84
Neil

以下に、実行する必要がある手順を示します。

Postgresの以前のインストールを削除します。

brew remove postgres
rm ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

新しいバージョンをインストールします。

brew install postgres
ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents

以前のインストールからのデータは、Postgres 9.4+と互換性があるようにアップグレードする必要があります: http://www.postgresql.org/docs/9.4/static/upgrading.html

データベースをアップグレードするにはPostgresを2回インストールする必要があるようです。私はそれを気にする必要はなかったので、新しいバージョンでデータベースを再作成しました。

mv /usr/local/var/postgres /usr/local/var/old-postgres
initdb -D /usr/local/var/postgres

Postgresを起動します(使用している場合はtmuxの外で):

launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

ログで問題を確認します。

tail /usr/local/var/postgres/server.log
2
Andrew

実行中brew doctor問題を解決するか、何か問題が発生しますか?

(まだコメントを投稿することはできませんが、問題の解決に役立つ場合があります)

編集-私は実行します:

brew doctor
brew update
brew doctor
brew cleanup
0
ckreon