Erro ao tentar iniciar o Postgres instalado via Homebrew: Operação não permitida

24

Eu instalei recentemente o Postgres no meu Mac via Homebrew. (Talvez eu já o tenha instalado, não estava sendo executado)

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

Agora estou tentando iniciá-lo com launchctl:

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

... mas estou recebendo um erro:

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

O que esse erro significa? O que estou fazendo errado? Como posso resolver o problema?

Andrew
fonte
Aparentemente, o brew / OSX às vezes requer uma reinicialização antes que tudo funcione. Antes de entrarmos no modo de solução de problemas: você tentou desligar e ligar novamente ?
agtoever 27/02
Reiniciar não muda nada.
214 Neil
Concordado, a reinicialização não resolveu o problema.
Andrew

Respostas:

84

Pode ser que você esteja usando launchctldentro do Tmux ou Screen.

Tmux e Screen multiplexadores de terminal que geram várias "telas" que você pode alternar facilmente em um único terminal.

Por algum motivo desconhecido para mim, rodar launchctldentro do Tmux nunca funciona e emite o erro Operation not permitted. Execute-o dentro de um shell normal e provavelmente funcionará bem.

Neil
fonte
Obrigado! Você está certo, eu estava usando tmux! No entanto, parece que estou enfrentando um problema diferente agora. Usando launchctlfora de tmux, vejo "Operação já em andamento", mas não consigo me conectar ao Postgres.
Andrew Andrew
Consegui resolver meu problema através de alguma combinação do unloadplist do agente de inicialização, removendo a instalação antiga do Postgres, movendo o diretório de dados antigo e reinstalando a versão mais recente.
Andrew
Finalmente, me deparei com isso e respondi por que tenho lutado há mais de um mês. Finalmente eu sei a razão obrigado por isso ...
kenju254
2
Uma solução para isso é usar Recoloque-a-usuário-sessão como mencionado aqui: apple.stackexchange.com/questions/41412/... em sua .tmux.conf
bibstha
2

Aqui estão as etapas que você pode precisar seguir:

Remova uma instalação anterior do Postgres:

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

Instale a nova versão:

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

Os dados da instalação anterior precisarão ser atualizados para serem compatíveis com o Postgres 9.4+: http://www.postgresql.org/docs/9.4/static/upgrading.html

Parece que você precisa de duas instalações do Postgres para atualizar seu banco de dados, e eu não ligo para isso, então apenas recriei o banco de dados com a nova versão:

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

Agora inicie o Postgres (fora de tmuxse você estiver usando isso):

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

Verifique os logs para quaisquer problemas:

tail /usr/local/var/postgres/server.log
Andrew
fonte
0

A execução brew doctorresolve o problema ou gera alguma coisa?

(Ainda não posso postar comentários, mas isso pode ajudar a corrigir o problema)

Editar - eu executaria:

brew doctor
brew update
brew doctor
brew cleanup
ckreon
fonte
Não ajuda, mesmo depois de limpar quaisquer avisos de brew doctor.
214 Neil