# Como fazer a instalação do gem no discourse-ai usar a fonte da imagem do gem modificada em web.china.template.yml?

**URL:** https://meta.discourse.org/t/how-to-make-the-gem-installation-in-discourse-ai-use-the-gem-image-source-modified-in-web-china-template-yml/288645
**Category:** Self-hosting
**Tags:** ai
**Created:** [Outubro 29, 2023, 12:42am UTC](https://meta.discourse.org/t/how-to-make-the-gem-installation-in-discourse-ai-use-the-gem-image-source-modified-in-web-china-template-yml/288645 "2023-10-29T00:42:29Z")
**Posts on this page:** 10
**Page:** 1

<div class="post-metadata">

### Author: ![sober](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sober/32/344783_2.png) [@sober](https://meta.discourse.org/u/sober)
#### Post date: [Outubro 29, 2023, 12:42am UTC](https://meta.discourse.org/t/how-to-make-the-gem-installation-in-discourse-ai-use-the-gem-image-source-modified-in-web-china-template-yml/288645/1 "2023-10-29T00:42:29Z")

</div>

# Problema

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/](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?

# Erros inevitáveis

sudo ./launcher rebuild app

 ![image](https://global.discourse-cdn.com/meta/original/4X/6/4/5/645c00545eb242afa0278736e800c2e6848bdf70.png)

---

<div class="post-metadata">

### Author: ![sober](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sober/32/344783_2.png) [@sober](https://meta.discourse.org/u/sober)
#### Post date: [Novembro 10, 2023, 5:51am UTC](https://meta.discourse.org/t/how-to-make-the-gem-installation-in-discourse-ai-use-the-gem-image-source-modified-in-web-china-template-yml/288645/2 "2023-11-10T05:51:48Z")

</div>

```plaintext
I, [2023-11-10T04:40:17.388494 #1] INFO -- : 
> cd /var/www/discourse &amp;&amp; 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 &amp;&amp; su discourse -c 'bundle exec rake db:migrate' falhou com o retorno #&lt;Process::Status: pid 885 exit 255&gt;
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\"=&gt;\"$home\", \"hook\"=&gt;\"db_migrate\", \"cmd\"=&gt;[\"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

 ![image](https://global.discourse-cdn.com/meta/original/4X/0/d/d/0dd71f7cc222216c8f9cd4a6d013e78a61eed012.png)

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [Novembro 10, 2023, 1:03pm UTC](https://meta.discourse.org/t/how-to-make-the-gem-installation-in-discourse-ai-use-the-gem-image-source-modified-in-web-china-template-yml/288645/3 "2023-11-10T13:03:50Z")

</div>

Por acaso você está na China?

---

<div class="post-metadata">

### Author: ![sober](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sober/32/344783_2.png) [@sober](https://meta.discourse.org/u/sober)
#### Post date: [Novembro 12, 2023, 11:10am UTC](https://meta.discourse.org/t/how-to-make-the-gem-installation-in-discourse-ai-use-the-gem-image-source-modified-in-web-china-template-yml/288645/4 "2023-11-12T11:10:46Z")

</div>

Sim, existe alguma solução

---

<div class="post-metadata">

### Author: ![sober](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sober/32/344783_2.png) [@sober](https://meta.discourse.org/u/sober)
#### Post date: [Novembro 13, 2023, 12:43am UTC](https://meta.discourse.org/t/how-to-make-the-gem-installation-in-discourse-ai-use-the-gem-image-source-modified-in-web-china-template-yml/288645/5 "2023-11-13T00:43:50Z")

</div>

Encontrei uma solução, o plugin baixado após a conversão da imagem gem para instalar a biblioteca dependente do plugin

 ![image](https://global.discourse-cdn.com/meta/original/4X/7/d/3/7d33770827d2ca16d923762f205cae4265631542.png)

```plaintext
          - gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
          - su discourse -c 'bundle config mirror.https://rubygems.org https://gems.ruby-china.com/'
          - 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 install tiktoken_ruby -v 0.0.5 -i /var/www/discourse/plugins/discourse-ai/gems/3.2.2 --no-document --ignore-dependencies --no-user-install
          - gem install aws-eventstream -v 1.2.0 -i /var/www/discourse/plugins/discourse-ai/gems/3.2.2 --no-document --ignore-dependencies --no-user-install

```

---

<div class="post-metadata">

### Author: ![whitewaterdeu](https://avatars.discourse-cdn.com/v4/letter/w/57b2e6/32.png) [@whitewaterdeu](https://meta.discourse.org/u/whitewaterdeu)
#### Post date: [Dezembro 13, 2023, 7:27am UTC](https://meta.discourse.org/t/how-to-make-the-gem-installation-in-discourse-ai-use-the-gem-image-source-modified-in-web-china-template-yml/288645/6 "2023-12-13T07:27:19Z")

</div>

É melhor trocar para um servidor externo, Orz, servidores domésticos não conseguem se conectar de forma alguma

Como

> [@Long pause in standard installation of command : cd /var/www/discourse && su discourse -c 'bundle install --retry 3 --jobs 4'](https://meta.discourse.org/t/long-pause-in-standard-installation-of-command-cd-var-www-discourse-su-discourse-c-bundle-install-retry-3-jobs-4/267142/2):
>
> well, it is indeed a network problem , because my server is in China I finde the resolutions, copy here in chinese 在国内环境下安装Discoursehttps://mypre.cn/2021/02/17/Discourcs-setup-on-cvm-ecs/ Discourse的版本升级与维护都是基于github来完成的，而Discourse本身又是基于ruby编写。 使用包括腾讯云的CVM、轻量服务器以及阿里云的ECS都存在国外网站访问慢的问题，主要是为了扶持国内git仓库做的限流操作。 在clone托管在github上的discourse时，可以通过将clone链接替换github.com为github.com.cnpmjs.org来加速对github的访问，比如： 将git clone https://github.com/discourse/discourse\_docker.git 替换为 git clone https://github.com.c…

> [@My server can access github, but docker can't](https://meta.discourse.org/t/my-server-can-access-github-but-docker-cant/267470):
>
> Hello guys, i am using a server in HongKong , i have tested that my server can get access to github root@cvm-3k8ngdw25i225:/var/discourse# wget https://github.com/discourse/discourse.git/ --2023-06-07 02:30:54-- https://github.com/discourse/discourse.git/ Resolving github.com (github.com)... 20.205.243.166 Connecting to github.com (github.com)|20.205.243.166|:443... connected. HTTP request sent, awaiting response... 301 Moved Permanently Location: https://github.com/discourse/discourse/ [follo…

Se você está com pressa para construir um site, o tempo é mais importante que o dinheiro, se não estiver com pressa, pode brincar à vontade.

---

<div class="post-metadata">

### Author: ![sober](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sober/32/344783_2.png) [@sober](https://meta.discourse.org/u/sober)
#### Post date: [Dezembro 13, 2023, 9:22am UTC](https://meta.discourse.org/t/how-to-make-the-gem-installation-in-discourse-ai-use-the-gem-image-source-modified-in-web-china-template-yml/288645/7 "2023-12-13T09:22:03Z")

</div>

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](http://registry.yarnpkg.com) não ter um certificado SSL válido.

```plaintext
    - exec:
        cd: $home
        cmd:
          - gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
          - bundle config mirror.https://rubygems.org https://gems.ruby-china.com/
          - 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 install tiktoken_ruby -v 0.0.5 -i /var/www/discourse/plugins/discourse-ai/gems/3.2.2 --no-document --ignore-dependencies --no-user-install
          - gem install aws-eventstream -v 1.2.0 -i /var/www/discourse/plugins/discourse-ai/gems/3.2.2 --no-document --ignore-dependencies --no-user-install
          - yarn config set registry https://registry.npmmirror.com/ --global
          - grep -rl "registry.yarnpkg.com" . | tee ./find_cache.txt | xargs sed -i "s/registry.yarnpkg.com/registry.npmmirror.com/g" & && cat ./find_cache.txt & && rm ./find_cache.txt

```

---

<div class="post-metadata">

### Author: ![whitewaterdeu](https://avatars.discourse-cdn.com/v4/letter/w/57b2e6/32.png) [@whitewaterdeu](https://meta.discourse.org/u/whitewaterdeu)
#### Post date: [Dezembro 13, 2023, 10:57am UTC](https://meta.discourse.org/t/how-to-make-the-gem-installation-in-discourse-ai-use-the-gem-image-source-modified-in-web-china-template-yml/288645/8 "2023-12-13T10:57:07Z")

</div>

[ruby-china.com](http://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](http://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 😶

---

<div class="post-metadata">

### Author: ![sober](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sober/32/344783_2.png) [@sober](https://meta.discourse.org/u/sober)
#### Post date: [Dezembro 14, 2023, 1:29am UTC](https://meta.discourse.org/t/how-to-make-the-gem-installation-in-discourse-ai-use-the-gem-image-source-modified-in-web-china-template-yml/288645/9 "2023-12-14T01:29:43Z")

</div>

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).

---

<div class="post-metadata">

### Author: ![sober](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sober/32/344783_2.png) [@sober](https://meta.discourse.org/u/sober)
#### Post date: [Dezembro 14, 2023, 2:35am UTC](https://meta.discourse.org/t/how-to-make-the-gem-installation-in-discourse-ai-use-the-gem-image-source-modified-in-web-china-template-yml/288645/10 "2023-12-14T02:35:47Z")

</div>

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ê.

[https://www.zeppos.tech/t/topic/7](https://www.zeppos.tech/t/topic/7)
