Quando eu estava na China, queria mudar a fonte do espelho de gemas. No fork do discourse-ai, modifiquei as informações da fonte do espelho de gemas em Gemfile e gemfile. lock, mas o log ainda exibia o download de https://rubygems.org/. Como fazer com que a instalação de gemas no discourse-ai use a fonte de imagem de gemas modificada em web.china.template.yml?
I, [2023-11-10T04:40:17.388494 #1] INFO -- :
> cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError)
IOError: HTTP session not yet started (Gem::RemoteFetcher::FetchError)
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/remote_fetcher.rb:266:in `rescue in fetch_path'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/remote_fetcher.rb:246:in `fetch_path'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/remote_fetcher.rb:294:in `cache_update_path'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/remote_fetcher.rb:161:in `rescue in download'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/remote_fetcher.rb:146:in `download'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/source.rb:212:in `download'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/resolver/specification.rb:113:in `download'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/resolver/specification.rb:99:in `install'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/request_set.rb:281:in `block in install_into'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/request_set.rb:273:in `each'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/request_set.rb:273:in `install_into'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/request_set.rb:148:in `install'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/commands/install_command.rb:215:in `install_gem'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/commands/install_command.rb:231:in `block in install_gems'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/commands/install_command.rb:224:in `each'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/commands/install_command.rb:224:in `install_gems'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/commands/install_command.rb:170:in `execute'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/command.rb:328:in `invoke_with_build_args'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/command_manager.rb:253:in `invoke_command'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/command_manager.rb:193:in `process_args'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/command_manager.rb:151:in `run'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/gem_runner.rb:56:in `run'
/usr/local/bin/gem:12:in `<main>'
I, [2023-11-10T04:49:21.015453 #1] INFO -- : gem install tokenizers -v 0.3.3 -i /var/www/discourse/plugins/discourse-ai/gems/3.2.2 --no-document --ignore-dependencies --no-user-install
Você está especificando a gem tokenizers em /var/www/discourse/plugins/discourse-ai/plugin.rb, mas ela não existe!
Procurou por:
- /var/www/discourse/plugins/discourse-ai/gems/3.2.2/specifications/tokenizers-0.3.3.gemspec
- /var/www/discourse/plugins/discourse-ai/gems/3.2.2/specifications/tokenizers-0.3.3-x86_64-linux.gemspec
- /var/www/discourse/plugins/discourse-ai/gems/3.2.2/specifications/tokenizers-0.3.3-x86_64-linux.gemspec
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' falhou com o retorno #<Process::Status: pid 885 exit 255>
Localização da falha: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec falhou com os parâmetros {\"cd\"=>\"$home\", \"hook\"=>\"db_migrate\", \"cmd\"=>[\"su discourse -c 'bundle exec rake db:migrate'\"]}}
bootstrap falhou com o código de saída 255
** FALHA AO INICIAR ** por favor, role para cima e procure por mensagens de erro anteriores, pode haver mais de uma.
./discourse-doctor pode ajudar a diagnosticar o problema.
7d6d7efb62fe5cd8f1d85af89fb43a28089d4d91449fec274758f1c5ba2a589d
sudo ./launcher bootstrap web_only, este erro é frequentemente encontrado
Obrigado pela solução, já foi resolvido. Adicionar isto na configuração *.yml também resolveu o problema de não conseguir baixar bibliotecas relacionadas devido ao site da biblioteca registry.yarnpkg.com não ter um certificado SSL válido.
ruby-china.com não é uma solução para tudo, você pode encontrar outros problemas mais tarde (eu tive um, parece que ruby-china.com não atualizou as dependências relevantes, o que causou um problema, mas não anotei os detalhes e não consigo me lembrar agora)
Falaremos sobre isso na época
Existe de fato uma diferença entre os repositórios de pacotes espelhados acelerados e a versão oficial. Ao alternar para um repositório espelhado acelerado, como os da USTC, Tsinghua ou Alibaba, a versão da Tsinghua tem uma diferença menor, e a da USTC é a mais rápida. Meu servidor está em uma rede privada, e o servidor de rede pública é usado apenas para reencaminhamento de dados, o que reduz o custo geral. O custo do servidor é de 14 yuans por mês, com 2 núcleos (vCPU), 512 MB de RAM, 20 GB de armazenamento e largura de banda de 80 Mbps/s (pago conforme o uso).
Vejo que seu fórum é bom, parece ser relacionado à medicina. Nós criamos um fórum de tecnologia de computadores que integra o ChatGPT na China. Se tiver interesse, podemos autorizar o uso para você.