Ошибка при попытке запустить Postgres через Homebrew: операция не разрешена

24

Я недавно установил Postgres на свой Mac через Homebrew. (Возможно, он уже был установлен, он не работал)

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

Сейчас я пытаюсь начать это с launchctl:

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

... но я получаю ошибку:

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

Что означает эта ошибка? Что я делаю не так? Как я могу решить проблему?

Эндрю
источник
Очевидно brew / OSX иногда требует перезагрузки, прежде чем все заработает. Прежде чем мы все перейдем в режим решения проблем: вы пытались выключить и снова включить его ?
agtoever
Перезагрузка ничего не меняет.
Нейл
Договорились, перезагрузка не решила проблему.
Андрей

Ответы:

84

Возможно, вы используете launchctlвнутри Tmux или Screen.

Tmux и Screen - терминальные мультиплексоры, которые порождают несколько «экранов», между которыми вы можете легко переключаться в одном терминале.

По какой-то неизвестной мне причине, запуск launchctlвнутри Tmux никогда не работает и выдает ошибку Operation not permitted. Запустите его внутри обычной оболочки, и он, вероятно, будет работать нормально.

Нил
источник
Благодарность! Вы правы, я использовал tmux! Тем не менее, я, кажется, столкнулся с другой проблемой сейчас. При использовании launchctlвне tmuxя вижу «Операция уже выполняется», но я не могу подключиться к Postgres.
Андрей
Мне удалось решить мою проблему с помощью некоторой комбинации из unloadсписка запуска агента, удаления старой установки Postgres, перемещения старого каталога данных и переустановки последней версии.
Андрей
Наконец я наткнулся на это и ответил, почему я боролся с больше месяца. Наконец я знаю причину, спасибо за это ...
kenju254
2
Решением для этого является использование reattach-to-user-session, как указано здесь: apple.stackexchange.com/questions/41412/… в вашем .tmux.conf
bibstha
2

Вот шаги, которые вы, возможно, должны предпринять:

Удалить предыдущую установку Postgres:

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

Установите новую версию:

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

Данные из вашей предыдущей установки необходимо обновить для совместимости с Postgres 9.4+: http://www.postgresql.org/docs/9.4/static/upgrading.html.

Похоже, вам нужно две установки Postgres, чтобы обновить вашу базу данных, и я не хотел беспокоиться об этом, поэтому я просто пересоздал базу данных с новой версией:

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

Теперь запустите Postgres (за исключением, tmuxесли вы используете это):

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

Проверьте журналы на наличие проблем:

tail /usr/local/var/postgres/server.log
Эндрю
источник
0

Решает ли бег brew doctorпроблему или как-то иначе?

(Я пока не могу оставлять комментарии, но это может помочь решить проблему)

Изменить - я бы запустить:

brew doctor
brew update
brew doctor
brew cleanup
ckreon
источник
Не помогает, даже после удаления любых предупреждений brew doctor.
Нейл