Fehler beim Versuch, Postgres zu starten, das über Homebrew installiert wurde: Vorgang nicht zulässig

24

Ich habe kürzlich Postgres über Homebrew auf meinem Mac installiert. (Ich habe es vielleicht schon installiert, aber es lief nicht)

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

Jetzt versuche ich damit zu beginnen launchctl:

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

... aber ich erhalte einen Fehler:

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

Was bedeutet dieser Fehler? Was mache ich falsch? Wie kann ich das Problem beheben?

Andrew
quelle
Anscheinend erfordert Brew / OSX manchmal einen Neustart, bevor alles funktioniert. Bevor wir alle in den Problemlösungsmodus wechseln: Haben Sie versucht , ihn aus- und wieder einzuschalten?
Am
Ein Neustart ändert nichts.
Neil
Ein Neustart konnte das Problem nicht lösen.
Andrew

Antworten:

84

Es kann sein, dass Sie launchctlinnerhalb von Tmux oder Screen arbeiten.

Tmux und Screen sind Terminal-Multiplexer, die mehrere "Bildschirme" erzeugen, zwischen denen Sie problemlos in einem einzigen Terminal wechseln können.

Aus irgendeinem mir unbekannten Grund launchctlfunktioniert das Ausführen in Tmux nie und gibt den Fehler aus Operation not permitted. Führen Sie es in einer normalen Shell aus und es wird wahrscheinlich gut funktionieren.

Neil
quelle
Vielen Dank! Du hast recht, ich habe benutzt tmux! Ich bin jedoch offenbar auf ein anderes Problem gestoßen. Bei Verwendung launchctlaußerhalb von tmuxwird "Operation bereits in Bearbeitung" angezeigt, es kann jedoch keine Verbindung zu Postgres hergestellt werden.
Andrew
Ich konnte mein Problem lösen unload, indem ich die Launch Agent-Liste ausfüllte, die alte Postgres-Installation entfernte, das alte Datenverzeichnis verschob und die neueste Version neu installierte.
Andrew
Schließlich bin ich darauf gestoßen und habe geantwortet, warum ich seit mehr als einem Monat Probleme habe. Endlich weiß ich, warum ich dafür danke ...
Kenju254
2
Eine Lösung hierfür ist die Verwendung der hier erwähnten Reattach-to-User-Sitzung: apple.stackexchange.com/questions/41412/… in Ihrer .tmux.conf
bibstha
2

Hier sind die Schritte, die Sie möglicherweise ausführen müssen:

Entfernen Sie eine frühere Installation von Postgres:

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

Installieren Sie die neue Version:

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

Die Daten Ihrer vorherigen Installation müssen aktualisiert werden, um mit Postgres 9.4+ kompatibel zu sein: http://www.postgresql.org/docs/9.4/static/upgrading.html

Scheint, als bräuchten Sie zwei Installationen von Postgres, um Ihre Datenbank zu aktualisieren, und das war mir egal, deshalb habe ich die Datenbank mit der neuen Version neu erstellt:

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

Starten tmuxSie jetzt Postgres (außerhalb von, wenn Sie das verwenden):

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

Überprüfen Sie die Protokolle auf Probleme:

tail /usr/local/var/postgres/server.log
Andrew
quelle
0

Behebt das Ausführen brew doctordas Problem oder taucht auf andere Weise etwas auf?

(Ich kann noch keine Kommentare veröffentlichen, aber dies kann helfen, das Problem zu beheben.)

Bearbeiten - ich würde ausführen:

brew doctor
brew update
brew doctor
brew cleanup
ckreon
quelle
Hilft nicht, auch nachdem alle Warnungen von gelöscht wurden brew doctor.
Neil