Errore durante il tentativo di avviare Postgres installato tramite Homebrew: operazione non consentita


24

Di recente ho installato Postgres sul mio Mac tramite Homebrew. (Potrei averlo già installato non funzionava)

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

Ora sto cercando di avviarlo con launchctl:

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

... ma sto ricevendo un errore:

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

Cosa significa questo errore? Che cosa sto facendo di sbagliato? Come posso risolvere il problema?


Apparentemente brew / OSX a volte richiede un riavvio prima che tutto funzioni. Prima di entrare tutti nella modalità di risoluzione dei problemi: hai provato a spegnerlo e riaccenderlo ?
agtoever,

Il riavvio non cambia nulla.
Neil,

D'accordo, il riavvio non ha risolto il problema.
Andrew,

Risposte:


84

Potrebbe essere che stai usando launchctlall'interno di Tmux o Screen.

Tmux e Screen multiplexer di un terminale che generano più "schermi" che è possibile alternare facilmente in un singolo terminale.

Per qualche ragione a me sconosciuta, correre launchctlall'interno di Tmux non funziona mai ed emette l'errore Operation not permitted. Eseguilo all'interno di una shell normale e probabilmente funzionerà bene.


Grazie! Hai ragione, stavo usando tmux! Tuttavia, mi sembra di riscontrare un problema diverso ora. Usando launchctlal di fuori di tmux, vedo "Operazione già in corso", ma non riesco a collegarmi a Postgres.
Andrew,

Sono riuscito a risolvere il mio problema attraverso una combinazione tra unloadil plist dell'agente di avvio, la rimozione della vecchia installazione di Postgres, lo spostamento della vecchia directory dei dati e la reinstallazione della versione più recente.
Andrew,

Alla fine mi sono imbattuto in questo e ho risposto perché ho lottato con più di un mese. Finalmente conosco il motivo grazie per questo ...
kenju254

2
Una soluzione per questo è usare la riattacco-sessione-utente come menzionato qui: apple.stackexchange.com/questions/41412/… nel tuo .tmux.conf
bibstha

2

Ecco i passaggi che potrebbe essere necessario eseguire:

Rimuovi una precedente installazione di Postgres:

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

Installa la nuova versione:

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

I dati della tua installazione precedente dovranno essere aggiornati per essere compatibili con Postgres 9.4+: http://www.postgresql.org/docs/9.4/static/upgrading.html

Sembra che tu abbia bisogno di due installazioni di Postgres per aggiornare il tuo database, e non mi importava preoccuparmene, quindi ho appena ricreato il database con la nuova versione:

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

Ora avvia Postgres (a parte tmuxse lo stai usando):

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

Controlla i log per eventuali problemi:

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

0

L'esecuzione brew doctorrisolve il problema o genera in altro modo qualcosa?

(Non riesco ancora a pubblicare commenti, ma questo può aiutare a risolvere il problema)

Modifica - Vorrei eseguire:

brew doctor
brew update
brew doctor
brew cleanup

Non aiuta, anche dopo aver eliminato tutti gli avvisi da brew doctor.
Neil,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.