Помилка під час спроби запустити 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

Що означає ця помилка? Що я роблю неправильно? Як можна виправити проблему?


Мабуть, варити / OSX іноді потрібен перезапуск, перш ніж все працює. Перш ніж ми все перейдемо в режим вирішення проблем: Ви спробували вимкнути та знову ввімкнути ?
agtoever

Перезавантаження нічого не змінює.
Ніл

Домовились, перезавантаження не вирішило проблеми.
Андрій

Відповіді:


84

Можливо, ви використовуєте launchctlвсередині Tmux або Screen.

Tmux та Screen термінальні мультиплексори, які породжують кілька "екранів", на які ви можете легко перемикатися між собою в одному терміналі.

З незрозумілих мені причин запуск launchctlвсередині Tmux ніколи не працює, і видає помилку Operation not permitted. Запустіть її всередині звичайної оболонки, і вона, ймовірно, спрацює чудово.


Спасибі! Ви маєте рацію, я використовував tmux! Однак, здається, зараз я стикаюся з іншим питанням. Використовуючи launchctlзовні tmux, я бачу "Операція вже триває", але я не можу підключитися до Postgres.
Андрій

Мені вдалося вирішити свою проблему за допомогою комбінації unloadсписку запуску агентів, видалення старої установки Postgres, переміщення старого каталогу даних та перевстановлення останньої версії.
Андрій

Нарешті я натрапив на це і відповів, чому я борюся вже більше місяця. Нарешті я знаю причину спасибі за це ...
kenju254

2
Рішенням цього є використання сеансу повторного приєднання до користувача, як згадується тут: 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

Не допомагає навіть після очищення будь-яких попереджень від brew doctor.
Ніл
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.