Błąd podczas próby uruchomienia Postgres zainstalowanego przez Homebrew: Operacja niedozwolona

24

Niedawno zainstalowałem Postgres na komputerze Mac za pośrednictwem Homebrew. (Być może już go zainstalowałem, nie działało)

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

Teraz próbuję zacząć od launchctl:

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

... ale pojawia się błąd:

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

Co oznacza ten błąd? Co ja robię źle? Jak mogę rozwiązać problem?

Andrzej
źródło
Najwyraźniej brew / OSX czasami wymaga restartu, zanim wszystko zadziała. Zanim wszyscy przejdziemy w tryb rozwiązywania problemów: Czy próbowałeś go wyłączyć i włączyć ponownie ?
agtoever
Ponowne uruchomienie niczego nie zmienia.
Neil,
Uzgodnione, ponowne uruchomienie nie rozwiązało problemu.
Andrew,

Odpowiedzi:

84

Możliwe, że używasz launchctlw Tmux lub Screen.

Tmux i Screen to multipleksery terminali, które spawnują wiele „ekranów”, między którymi można łatwo przełączać się w jednym terminalu.

Z nieznanego mi powodu uruchamianie launchctlw Tmux nigdy nie działa i powoduje błąd Operation not permitted. Uruchom go w normalnej powłoce, a prawdopodobnie będzie dobrze działać.

Neil
źródło
Dzięki! Masz rację, używałem tmux! Wydaje mi się jednak, że mam teraz inny problem. Używając launchctlpoza tmux, widzę „Operacja już trwa”, ale nie mogę połączyć się z Postgres.
Andrew,
Udało mi się rozwiązać mój problem poprzez kombinację unloadwtyczki agenta uruchamiania, usunięcia starej instalacji Postgres, przeniesienia starego katalogu danych i ponownej instalacji najnowszej wersji.
Andrew
W końcu natknąłem się na to i odpowiedziałem, dlaczego walczę od ponad miesiąca. Wreszcie znam przyczynę, dzięki za to ...
kenju254,
2
Rozwiązaniem tego jest użycie ponownego połączenia z sesją użytkownika, jak wspomniano tutaj: apple.stackexchange.com/questions/41412/... w twoim .tmux.conf
bibstha
2

Oto kroki, które możesz podjąć:

Usuń poprzednią instalację Postgres:

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

Zainstaluj nową wersję:

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

Dane z poprzedniej instalacji będą musiały zostać zaktualizowane, aby były zgodne z Postgres 9.4+: http://www.postgresql.org/docs/9.4/static/upgrading.html

Wygląda na to, że potrzebujesz dwóch instalacji Postgres, aby zaktualizować bazę danych, i nie przejmowałem się tym, więc właśnie odtworzyłem bazę danych w nowej wersji:

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

Teraz uruchom Postgres (poza tmuxjeśli go używasz):

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

Sprawdź dzienniki pod kątem problemów:

tail /usr/local/var/postgres/server.log
Andrzej
źródło
0

Czy uruchomienie brew doctorrozwiązuje problem, czy w inny sposób coś podnosi?

(Nie mogę jeszcze publikować komentarzy, ale może to pomóc rozwiązać problem)

Edytuj - uruchomiłbym:

brew doctor
brew update
brew doctor
brew cleanup
ckreon
źródło
Nie pomaga, nawet po usunięciu ostrzeżeń brew doctor.
Neil,