Instalação do MacOS: Gem::FilePermissionError

Ao instalar o Discourse (para desenvolvimento) no meu Mac, recebo este erro:

ERRO: Ao executar o gem ... (Gem::FilePermissionError)
    Você não tem permissão de escrita para o diretório /Library/Ruby/Gems/2.6.0.

Como posso resolver isso?
Obrigado.

Você executou a instalação do script do Discourse aqui?

Você está usando o macOS Catalina? Se for esse o caso, parece que você está enfrentando o Discourse tentando usar a versão do ruby do sistema. Você deve usar algo como rbenv para definir sua versão do ruby e evitar isso.

Estou usando o macOS Catalina. Executei o script, mas ele falhou no meio do caminho porque, acredito eu, já estava instalado.

Você pode colar a saída do which rbenv?

E você tem um .bashrc ou .zshrc personalizado?

/usr/local/bin/rbenv

Não tenho certeza. Acredito que não, mas talvez.

Você pode entrar (cd) no diretório do seu Discourse e compartilhar a saída do comando which ruby?

Ops, não percebi. Fiz e obtive /usr/bin/ruby

Certo, então você está usando o Ruby do sistema para o Discourse, e é por isso que está enfrentando esse problema.

Verifique a variável PATH digitando echo $PATH. Você deve ver /Users/<seu nome de usuário>/.rbenv/bin e /Users/<seu nome de usuário>/.rbenv/shims listados ali.

Se não estiverem, adicione-os no arquivo de configuração do seu shell .bashrc ou .zshrc. Para ZSH, você pode adicionar assim: export PATH=/caminho/numero/1:/caminho/numero/2:$PATH

Se você os vir, verifique a ordem em que estão. Se estiverem mais tarde na cadeia, provavelmente não estão sendo carregados antes do Ruby do sistema, o que significa que o Ruby do sistema está sendo usado para o Discourse. Você pode usar a mesma abordagem acima para mover os caminhos mais para o início da cadeia.

Pensei que o @david tivesse adicionado uma verificação de versão do Ruby nas nossas coisas do ambiente de desenvolvimento? :thinking:

Acredito que isso era para o cli do tema.

Existe alguma maneira de adicionar uma verificação equivalente aqui?

Acho que já verificamos a compatibilidade da versão do Ruby no Discourse — o problema aqui é que nosso bundle do Discourse não consegue instalar gems para a versão do Ruby do sistema, que vem bundled com o macOS. Posso estar enganado quanto aos detalhes específicos, mas acredito que isso tenha a ver com uma mudança que a Apple fez no macOS Catalina. Eu mesmo encontrei esse mesmo problema e foi necessário bastante troubleshooting para descobrir a causa.

  1. Encontrei o mesmo erro que o OP.

  2. Leia isto:

  1. Pensei que na verdade não era um erro de permissão de arquivo, mas sim que o instalador estava olhando no lugar errado.

  2. Eu sabia que reiniciar o terminal recarregaria meu arquivo .zshrc, então fechei e abri o terminal.

  3. Executei o script de instalação novamente e não encontrei mais esse erro.

Este problema poderia ser resolvido com uma atualização do terminal estrategicamente colocada durante o processo de instalação? :thinking: