Error al intentar iniciar Postgres instalado a través de Homebrew: operación no permitida

24

Recientemente instalé Postgres en mi Mac a través de Homebrew. (Es posible que ya lo haya instalado, no se estaba ejecutando)

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

Ahora estoy tratando de comenzar con launchctl:

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

... pero recibo un error:

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

¿Qué significa este error? ¿Qué estoy haciendo mal? ¿Cómo puedo solucionar el problema?

Andrés
fuente
Aparentemente brew / OSX a veces requiere un reinicio antes de que todo funcione. Antes de que todos entremos en el modo de resolución de problemas: ¿Intentaste apagarlo y volver a encenderlo ?
2015
Reiniciar no cambia nada.
Neil
De acuerdo, reiniciar no resolvió el problema.
Andrew

Respuestas:

84

Puede ser que esté usando launchctldentro de Tmux o Screen.

Tmux y Screen son multiplexores de terminal que generan múltiples "pantallas" entre las que puede cambiar fácilmente en un solo terminal.

Por alguna razón desconocida para mí, ejecutar launchctldentro de Tmux nunca funciona y emite el error Operation not permitted. Ejecútelo dentro de un shell normal y probablemente funcionará bien.

Neil
fuente
¡Gracias! Tienes razón, estaba usando tmux! Sin embargo, parece que ahora me encuentro con un problema diferente. Utilizando launchctlfuera de tmux, veo "Operación ya en progreso", pero no puedo conectarme a Postgres.
Andrew
unloadLogré resolver mi problema combinando la lista de agentes de lanzamiento, eliminando la instalación anterior de Postgres, moviendo el directorio de datos anterior y reinstalando la última versión.
Andrew
Finalmente me topé con esto y respondí por qué he estado luchando durante más de un mes. Finalmente sé la razón gracias por esto ...
kenju254
2
Una solución para esto es utilizar la sesión de reenganche a usuario como se menciona aquí: apple.stackexchange.com/questions/41412/… en su .tmux.conf
bibstha
2

Estos son los pasos que debe seguir:

Eliminar una instalación anterior de Postgres:

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

Instala la nueva versión:

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

Los datos de su instalación anterior deberán actualizarse para ser compatibles con Postgres 9.4+: http://www.postgresql.org/docs/9.4/static/upgrading.html

Parece que necesita dos instalaciones de Postgres para actualizar su base de datos, y no me importó molestarme con eso, así que simplemente recreé la base de datos con la nueva versión:

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

Ahora inicie Postgres (fuera de tmuxsi está usando eso):

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

Verifique los registros para cualquier problema:

tail /usr/local/var/postgres/server.log
Andrés
fuente
0

¿Ejecutar brew doctorresuelve el problema o sube algo?

(Todavía no puedo publicar comentarios, pero esto puede ayudar a solucionar el problema)

Editar - Yo correría:

brew doctor
brew update
brew doctor
brew cleanup
ckreon
fuente
No ayuda, incluso después de borrar cualquier advertencia de brew doctor.
Neil