Instale o Discourse no macOS para desenvolvimento

Em desenvolvimento, você não realiza atualizações aqui.

Olá Robert, obrigado pela sua resposta. O ‘git pull’ é suficiente para realizar uma atualização? (em desenvolvimento)

1 curtida

Sim, mas não se esqueça das gems e das migrações:

git pull
bundle install
rake db:migrate
2 curtidas

Parece que há algo errado com o script, ele falha ao instalar o brew.
(isso é em um Mac Air M2 novíssimo)

Tudo correu bem depois de instalar o brew manualmente :slight_smile:

Note que o script instala a versão 3.1.3 do Ruby e então bundle exec fica irritado por você não usar a 3.2.1 :smiley:

[Warning] O Discourse recomenda desenvolver usando Ruby v3.2.1 ou superior. Você está usando v3.1.3.

2 curtidas

Não é mais verdade! :partying_face:

3 curtidas

Não consigo instalar o Ruby por algum motivo. Continuo recebendo isto:

BUILD FAILED (macOS 12.5.1 usando ruby-build 20230309)

Inspecione ou limpe a árvore de trabalho em /var/folders/f6/95l6wylj4d11_jyvyp7r9yd40000gn/T/ruby-build.20230320012216.80048.RdOmWC
Resultados registrados em /var/folders/f6/95l6wylj4d11_jyvyp7r9yd40000gn/T/ruby-build.20230320012216.80048.log

Últimas 10 linhas do log:
	Verifique ext/psych/mkmf.log para mais detalhes.
*** Corrija os problemas, então remova esses diretórios e tente novamente se quiser.
Gerando documentação RDoc
/private/var/folders/f6/95l6wylj4d11_jyvyp7r9yd40000gn/T/ruby-build.20230320012216.80048.RdOmWC/ruby-3.2.1/lib/yaml.rb:3: warning: Parece que sua instalação do ruby está faltando psych (para saída YAML).
Para eliminar este aviso, por favor instale libyaml e reinstale seu ruby.
uh-oh! RDoc teve um problema:
cannot load such file -- psych

execute com --debug para o backtrace completo
make: *** [rdoc] Error 1
falhou

Alguém poderia me ajudar com isso?

1 curtida

Tenho o mesmo problema no macOS 13.2.1.

Esta página é o único resultado do Google ao pesquisar por (partes de) esta mensagem de erro, então, caso outra pessoa encontre este erro novamente:

Eu estava enfrentando isso hoje ao executar rails s após atualizar para a versão atual do Ruby (3.2.1), Rails (7.0.4.3) e todas as dependências do Gemfile, incluindo mini_racer (0.6.3).

Foi corrigido após seguir uma sugestão deste comentário do GitHub: executar make dentro de
.../3.2.0/gems/mini_racer-0.6.3/ext/mini_racer_extension
e copiar o mini_racer_extension.bundle resultante para .../3.2.0/extensions/x86_64-darwin-22/3.2.0/mini_racer-0.6.3.

Consegui finalmente superar o erro de compilação de alguma forma (não anotei o que fiz…), mas agora estou preso em:

An error occurred while installing pg (1.4.6), and Bundler cannot continue

Durante o bundle install. :thinking:

edit:
Foi resolvido seguindo as instruções dadas acima do erro:

If you need to have postgresql@13 first in your PATH, run:
  echo 'export PATH=\"/opt/homebrew/opt/postgresql@13/bin:$PATH\"' >> ~/.zshrc

For compilers to find postgresql@13 you may need to set:
  export LDFLAGS=\"-L/opt/homebrew/opt/postgresql@13/lib\"
  export CPPFLAGS=\"-I/opt/homebrew/opt/postgresql@13/include\"

For pkg-config to find postgresql@13 you may need to set:
  export PKG_CONFIG_PATH=\"/opt/homebrew/opt/postgresql@13/lib/pkgconfig\"

Não tenho certeza de qual deles, no entanto! :sweat_smile:

1 curtida

Devido a problemas de permissão em um laptop corporativo, estou tendo que passar pelo script de instalação manualmente para lidar com cada item um de cada vez. Ao tentar executar gem update --system, recebo o seguinte erro:

sh-3.2# gem update --system
Updating rubygems-update
Fetching rubygems-update-3.4.12.gem
Successfully installed rubygems-update-3.4.12
Parsing documentation for rubygems-update-3.4.12
Installing ri documentation for rubygems-update-3.4.12
Installing darkfish documentation for rubygems-update-3.4.12
Done installing documentation for rubygems-update after 158 seconds
Parsing documentation for rubygems-update-3.4.12
Done installing documentation for rubygems-update after 0 seconds
Installing RubyGems 3.4.12
ERROR:  While executing gem ... (Errno::EPERM)
    Operation not permitted @ rb_sysopen - /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/gem
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:1387:in `initialize'
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:1387:in `open'
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:1387:in `block in copy_file'
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:1386:in `open'
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:1386:in `copy_file'
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:492:in `copy_file'
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:860:in `block in install'
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:1558:in `block in fu_each_src_dest'
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:1574:in `fu_each_src_dest0'
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:1556:in `fu_each_src_dest'
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:856:in `install'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/commands/setup_command.rb:267:in `block (2 levels) in install_executables'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/commands/setup_command.rb:251:in `chdir'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/commands/setup_command.rb:251:in `block in install_executables'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/commands/setup_command.rb:248:in `each'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/commands/setup_command.rb:248:in `install_executables'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/commands/setup_command.rb:165:in `execute'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/command.rb:327:in `invoke_with_build_args'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/command_manager.rb:252:in `invoke_command'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/command_manager.rb:192:in `process_args'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/command_manager.rb:150:in `run'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/gem_runner.rb:51:in `run'
	setup.rb:33:in `<main>'

Alguma ideia de como superar isso?

1 curtida

Você usou M1/M2 Apple? Acho que certifique-se de que o Ruby 3.2.x seja o padrão do sistema, instalando-o primeiro com o brew. Em seguida, para o Apple Silicon, você pode fazer

  if [ -d "/opt/homebrew/opt/ruby/bin" ]; then
     export PATH=/opt/homebrew/opt/ruby/bin:$PATH
     export PATH=`gem environment gemdir`/bin:$PATH
  fi

no seu .zshrc

Porque o Mac OS X vem com o Ruby 2.x do sistema que vai bagunçar o script de instalação do ambiente.

Além disso, se você tiver problemas para iniciar o serviço, faça algo como:

  brew services restart postgresql@13
  brew services restart redis

funcionou para mim agora.

2 curtidas

Olá a todos! Tenho acompanhado o post de instalação aqui e a maioria das dicas compartilhadas me ajudou muito a superar alguns problemas que eu estava enfrentando durante a minha instalação no MacOS M1.

Agora estou travado na última parte do Bootstrap:

bundle exec rails server

O comando acima funcionou para mim, consegui ver algo em localhost:3000 e também registrar o usuário administrador, mas depois de executar bin/ember-cli a seguinte exceção foi apresentada:

$ bin/ember-cli
warning Resolution field "unset-value@2.0.1" is incompatible with requested version "unset-value@^1.0.0"
patch-package 8.0.0
Applying patches...
@ember/jquery@2.0.0 ✔
babel-plugin-debug-macros@0.3.4 ✔
content-tag@1.1.2 ✔
ember-source@3.28.12 ✔
ember-this-fallback@0.4.0 (1 deprecation-name) ✔
ember-this-fallback@0.4.0 (2 themes) ✔
virtual-dom@2.1.1 ✔
WARNING: Ember CLI v5.0.0 is not tested against Node v21.0.0. See "https://github.com/ember-cli/ember-cli/blob/master/docs/node-support.md" to find out which version of Node is best to use.
(node:22167) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
Could not `import('file:///Users/myuser/discourse/app/assets/javascripts/discourse/ember-cli-build.js')`: Cannot read properties of undefined (reading 'indexOf')

Stack Trace and Error Report: /var/folders/4l/ksznzcp17sg1wjyq7mmfzfkc0000gn/T/error.dump.b499a1d1d9b275ada33629ea1a84760d.log

Estou perdendo alguma coisa?

Consegui executar bin/ember-cli após desinstalar o nó atual e instalar o nó@20 via brew.

1 curtida

Estou vendo este erro nesta etapa.

Error: Não foi possível criar um link simbólico para bin/c_rehash
Destino /opt/homebrew/bin/c_rehash
é um link simbólico pertencente ao openssl@3. Você pode desvinculá-lo:
  brew unlink openssl@3

Para forçar o link e sobrescrever todos os arquivos conflitantes:
  brew link --overwrite openssl@1.1

Para listar todos os arquivos que seriam excluídos:
  brew link --overwrite --dry-run openssl@1.1
falhou

E este erro nessa etapa

/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems.rb:283:in `find_spec_for_exe': Não foi possível encontrar 'bundler' (2.4.13) exigido pelo seu /Users/Desktop/discourse/Gemfile.lock. (Gem::GemNotFoundException)
Para atualizar para a versão mais recente instalada em seu sistema, execute `bundle update --bundler`.
Para instalar a versão ausente, execute `gem install bundler:2.4.13`

	from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems.rb:302:in `activate_bin_path'
	from /usr/bin/bundle:23:in `<main>'

Alguém pode me guiar em como devo proceder? Esta é a minha primeira vez. @Arkshine

Infelizmente, não tenho um computador macOS. Sei que o script está funcionando bem no Windows/Linux; mas no macOS não consigo testá-lo.

Você tentou executar brew link --overwrite openssl@1.1 e, em seguida, executar o script novamente? No entanto, há uma grande chance de que ele pare novamente nesta linha.

Alguém sabe como definir variáveis de ambiente com este ambiente de desenvolvimento? Estou tentando fazer o SSO funcionar, mas parece que preciso habilitar o CORS. Li que tenho que fazer isso no app.yml, mas esta configuração não tem um. Pode ir para a tabela do banco de dados site_settings? Desculpe, sou novo no desenvolvimento do Discourse.

Olá @Plabforum,

Estou encontrando exatamente os mesmos 2 erros que você. Você conseguiu resolvê-los?

Qualquer conselho seria apreciado.

Sinto muito, não tenho boas notícias. Na verdade, desisti depois disso.

Lamento ouvir isso. Na verdade, consegui superar isso desvinculando o openssl@3 através de:

brew unlink openssl@3

e depois vinculei o openssl@1.1

brew link --overwrite openssl@1.1

Executei o script novamente sem erros (tive alguns avisos sobre as coisas que foram instaladas na primeira execução).

2 curtidas

Parece que consegui instalar o Discourse no meu Macbook para desenvolvimento seguindo as instruções deste tópico. Tenho 2 perguntas de acompanhamento.

  1. Recebi avisos e falhas ao executar bundle exec rake autospec, isso é motivo de preocupação? Minha instalação parece funcionar como esperado e não está mostrando erros na seção de administração.

  2. Peço desculpas antecipadamente se fizer uma pergunta boba (sou totalmente novo neste tipo de solução/servidor). Preciso executar bundle exec rails server, bin/ember-cli e mailhog toda vez que quiser usar o servidor? E como eu desligo o servidor se quiser?

Obrigado pelo seu apoio!