Когда я был в Китае, я хотел изменить источник зеркала gem. В форке discourse-ai я изменил информацию о источнике зеркала gem в файлах Gemfile и Gemfile.lock, но в логах всё ещё отображалось скачивание из https://rubygems.org/. Как сделать так, чтобы установка gem в discourse-ai использовала источник изображения gem, изменённый в 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: При выполнении команды gem ... (Gem::RemoteFetcher::FetchError)
IOError: HTTP-сессия еще не запущена (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
Вы указываете gem tokenizers в файле /var/www/discourse/plugins/discourse-ai/plugin.rb, однако он не найден!
Искали в:
- /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' завершилась с кодом возврата #<Process::Status: pid 885 exit 255>
Место возникновения ошибки: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
Выполнение не удалось с параметрами {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
Загрузка не удалась с кодом выхода 255
** ЗАГРУЗКА НЕ УДАЛАСЬ ** пожалуйста, прокрутите вверх и найдите сообщения об ошибках, их может быть несколько.
./discourse-doctor может помочь в диагностике проблемы.
7d6d7efb62fe5cd8f1d85af89fb43a28089d4d91449fec274758f1c5ba2a589d
sudo ./launcher bootstrap web_only, эта ошибка часто встречается
Спасибо за предложенное решение, проблема решена. Добавление этого в конфигурацию *.yml также устранило проблему с невозможностью загрузки необходимых библиотек из-за отсутствия действительного SSL-сертификата на сайте реестра registry.yarnpkg.com.
ruby-china.com не является панацеей, и в будущем вы можете столкнуться с другими проблемами (я сам с этим столкнулся: похоже, на ruby-china.com не обновились необходимые зависимости, из-за чего возникли ошибки. Я не записал детали, поэтому точно не помню).
Разберёмся с этим позже
Действительно, существуют различия между версиями зависимостей в ускоренных зеркалах и официальными версиями. При переключении на ускоренное зеркало (USTC, Tsinghua, Alibaba) версии в зеркале Tsinghua отличаются меньше всего, а скорость зеркала USTC самая высокая. Мой сервер находится в частной сети, публичный сервер используется только для пересылки данных. Общие затраты невелики: стоимость сервера составляет 14 юаней в месяц (2 ядра vCPU, 512 МБ ОЗУ, 20 ГБ хранилища, пропускная способность 80 Мбит/с, оплата по факту использования).
Вижу, что ваш форум отлично сделан и посвящён медицине. У нас — форум по компьютерным технологиям, где мы обеспечили доступ к ChatGPT в Китае. Если интересно, можем предоставить вам права на его использование.