Erreur lors de la tentative de démarrage de Postgres installé via Homebrew: opération non autorisée

24

J'ai récemment installé Postgres sur mon Mac via Homebrew. (Je l'ai peut-être déjà installé, il ne fonctionnait pas)

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

Maintenant j'essaye de commencer avec launchctl:

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

... mais je reçois une erreur:

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

Que signifie cette erreur? Qu'est-ce que je fais mal? Comment puis-je résoudre le problème?

Andrew
la source
Apparemment, le brassage / OSX nécessite parfois un redémarrage avant que tout fonctionne. Avant de passer au mode de résolution de problèmes: avez-vous essayé de l' éteindre puis de le rallumer ?
agtoever
Le redémarrage ne change rien.
Neil
D'accord, le redémarrage n'a pas résolu le problème.
Andrew

Réponses:

84

Il se peut que vous utilisiez l' launchctlintérieur de Tmux ou Screen.

Tmux et Screen un multiplexeurs de terminaux qui engendrent plusieurs "écrans" que vous pouvez facilement basculer entre dans un seul terminal.

Pour une raison inconnue de moi, l'exécution launchctlà l' intérieur de Tmux ne fonctionne jamais et émet l'erreur Operation not permitted. Exécutez-le à l'intérieur d'un shell normal et cela fonctionnera probablement très bien.

Neil
la source
Merci! Tu as raison, j'utilisais tmux! Cependant, je semble rencontrer un problème différent maintenant. En utilisant en launchctldehors de tmux, je vois "Opération déjà en cours", mais je ne peux pas me connecter à Postgres.
Andrew
J'ai réussi à résoudre mon problème en combinant unloadla liste des agents de lancement, la suppression de l'ancienne installation de Postgres, le déplacement de l'ancien répertoire de données et la réinstallation de la dernière version.
Andrew
Enfin, je suis tombé sur cela et j'ai répondu pourquoi je me débattais depuis plus d'un mois. Enfin, je connais la raison pour cela ...
kenju254
2
Une solution pour cela consiste à utiliser la reconnexion à la session utilisateur comme mentionné ici: apple.stackexchange.com/questions/41412/… dans votre .tmux.conf
bibstha
2

Voici les étapes à suivre:

Supprimer une installation précédente de Postgres:

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

Installez la nouvelle version:

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

Les données de votre installation précédente devront être mises à niveau pour être compatibles avec Postgres 9.4+: http://www.postgresql.org/docs/9.4/static/upgrading.html

Il semble que vous ayez besoin de deux installations de Postgres pour mettre à niveau votre base de données, et je m'en fichais de cela, alors j'ai juste recréé la base de données avec la nouvelle version:

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

Lancez maintenant Postgres (en dehors de tmuxsi vous l'utilisez):

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

Vérifiez les journaux pour tout problème:

tail /usr/local/var/postgres/server.log
Andrew
la source
0

Est-ce que l'exécution brew doctorrésout le problème ou déclenche quoi que ce soit?

(Je ne peux pas encore poster de commentaires mais cela peut aider à résoudre le problème)

Modifier - je courrais:

brew doctor
brew update
brew doctor
brew cleanup
ckreon
la source
N'aide pas, même après avoir effacé tous les avertissements brew doctor.
Neil