

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Rubyem AL2023
<a name="ruby"></a>

 [https://www.ruby-lang.org/en/](https://www.ruby-lang.org/en/)in AL2023 é representado pelas versões 3.2 e 3.4. O Amazon Linux segue o cronograma de suporte upstream e o status de suporte de qualquer Ruby versão sempre pode ser verificado no site do [Ruby](https://www.ruby-lang.org/en/). Todas as versões do Ruby compatíveis têm namespace e podem ser instaladas no mesmo sistema simultaneamente. A implantação de namespaces garante que cada instalação do Ruby seja exclusiva no sistema de arquivos. Isso é feito renomeando os principais diretórios e arquivos com base na versão de runtime. Os nomes reais dos executáveis serão parecidos com *ruby {MAJOR.MINOR}* (por exemplo, ou). `ruby3.2` `ruby3.4` Ruby3.4 também fornece o binário com namespace MRI (Matz's Ruby Interpreter)`ruby3.4-mri`, que se refere à implementação de referência padrão baseada em C do. Ruby No entanto, apenas uma versão do Ruby pode estar ativa por vez. Essa versão ativa fornece os diretórios e nomes de arquivos padrão, como *ruby*, *gem* ou *bundle*, apontando-os para o tempo de execução atualmente ativo. 

 Isso é alcançado por meio dos recursos da ferramenta *alternatives*. É importante lembrar que os nomes dos executáveis padrão são virtuais e podem mudar a qualquer momento ao apontar para outra versão do Ruby instalada. Essa flexibilidade permite que o software que usa *ruby* in the shebang selecione a versão desejada quando invocado. No entanto, quando uma versão específica do Ruby é necessária, a persistência da versão pode ser alcançada chamando o executável com namespace (por exemplo, `ruby3.2` ou`ruby3.4`), que sempre usará a versão especificada do tempo de execução. Além disso, os executáveis com namespace das ferramentas *gem* e *bundler*, como,, ou `ruby3.2-gem` `ruby3.4-gem``ruby3.2-bundler`, estão sempre associados à Ruby versão correspondente`ruby3.4-bundler`, independentemente do tempo de execução ativo no momento. 

 Rubyé distribuído como vários pacotes com namespace que começam com "”. `ruby{MAJOR.MINOR}` Esses pacotes fornecem versões *ruby* compatíveis das ferramentas *gem* e *bundler*, documentação, bibliotecas e muito mais. Por exemplo, o tempo de execução principal do Ruby 3.2 é fornecido pelo `ruby3.2` pacote, que extrai `ruby3.2-rubygems` (fornecendo *gem*) e `ruby3.2-rubygem-bundler` (fornecendo *pacote e empacotador*) como *dependências*. 

 Depois de instalar uma Ruby versão, as entradas das ferramentas complementares podem aparecer como nulas na configuração das *alternativas*. Isso pode ser verificado executando`alternatives --display ruby`. Se as entradas aparecerem como nulas, elas deverão ser registradas manualmente usando`alternatives --install`. Por exemplo, para registrar todas as ferramentas complementares para a Ruby versão 3.4: 

```
sudo alternatives --install /usr/bin/gem gem /usr/bin/ruby3.4-gem 34
sudo alternatives --install /usr/bin/bundle bundle /usr/bin/ruby3.4-bundle 34
sudo alternatives --install /usr/bin/bundler bundler /usr/bin/ruby3.4-bundler 34
sudo alternatives --install /usr/bin/erb erb /usr/bin/ruby3.4-erb 34
sudo alternatives --install /usr/bin/racc racc /usr/bin/ruby3.4-racc 34
sudo alternatives --install /usr/bin/rdoc rdoc /usr/bin/ruby3.4-rdoc 34
sudo alternatives --install /usr/bin/ri ri /usr/bin/ruby3.4-ri 34
```

 O valor da prioridade (por exemplo, 34 para Ruby 3,4, 32 para Ruby 3,2) deve corresponder à prioridade usada na entrada alternativa principal do *ruby*. Depois de registradas, as ferramentas complementares serão gerenciadas automaticamente junto com a alternativa *ruby*. 

 A ferramenta *alternatives* fornece um comando único para alternar entre versões do Ruby. Por padrão, *alternatives* é configurada para estar no modo automático, que usa prioridades para determinar a versão ativa do Ruby. No entanto, você pode ativar qualquer versão instalada quando quiser. No momento, todas as versões compatíveis do Ruby têm a mesma prioridade, o que significa que a primeira versão instalada será ativada automaticamente. 

**Exemplos úteis do uso de *alternatives***

1. Verifique para que *alternatives* está configurada.

   ```
   alternatives --list
   ```

1. Verifique a *configuração atual do ruby*

   ```
   alternatives --display ruby
   ```

1. Altere a versão do Ruby de forma interativa.

   ```
   alternatives --config ruby
   ```

1. Mude para o modo manual e selecione uma versão específica.

   ```
   alternatives --set ruby /usr/bin/ruby{MAJOR.MINOR}
   ```

1. Volte para o modo de seleção automática de versão.

   ```
   alternatives --auto ruby
   ```