중국에 있을 때 gem 미러 소스를 변경하고 싶었습니다. fork의 discourse-ai에서 Gemfile과 gemfile.lock의 gem 미러 소스 정보를 수정했지만, 로그에는 여전히 https://rubygems.org/에서 다운로드되는 것으로 표시되었습니다. web.china.template.yml에서 수정한 gem 이미지 소스를 discourse-ai의 gem 설치에 적용하려면 어떻게 해야 하나요?
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
You are specifying the gem tokenizers in /var/www/discourse/plugins/discourse-ai/plugin.rb, however it does not exist!
Looked for:
- /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' failed with return #<Process::Status: pid 885 exit 255>
Location of failure: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap failed with exit code 255
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
7d6d7efb62fe5cd8f1d85af89fb43a28089d4d91449fec274758f1c5ba2a589d
sudo ./launcher bootstrap web_only, 이 오류는 자주 발생합니다
ruby-china.com은 만능이 아닙니다. 이후 다른 문제에 직면할 수도 있습니다(저도 비슷한 문제를 겪었는데, ruby-china.com이 관련 의존성을 업데이트하지 않아서 문제가 발생한 것 같습니다. 다만 당시 기록을 남기지 않아 구체적으로는 기억나지 않습니다). 그때 가서 다시 말하겠습니다
실제로 가속 미러 소스의 의존성 라이브러리와 공식 버전 사이에 차이가 있습니다. 가속 소스를 전환해 보면, 칭화대, 중국과기대, 알리바바 중 칭화대의 버전 차이가 가장 작고, 중국과기대의 속도가 가장 빠릅니다. 제 서버는 프라이빗 네트워크에 있으며, 퍼블릭 서버는 데이터 포워딩만 담당하므로 종합 비용이 적게 듭니다. 서버 비용은 월 14위안으로, 2코어(vCPU), 512MB 메모리, 20GB 저장 공간, 80Mbps/s 대역폭(사용량 과금)입니다.