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?


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ć.


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

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

Nie pomaga, nawet po usunięciu ostrzeżeń brew doctor.
Neil,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.