

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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

 [https://www.ruby-lang.org/en/](https://www.ruby-lang.org/en/)in AL2023 è rappresentato dalle versioni 3.2 e 3.4. Amazon Linux segue la pianificazione del supporto originale e lo stato del supporto di qualsiasi Ruby versione può sempre essere verificato sul sito Web di [Ruby](https://www.ruby-lang.org/en/). Tutte le Ruby versioni supportate hanno uno spazio dei nomi e possono essere installate contemporaneamente sullo stesso sistema. Il namespacing garantisce che ogni Ruby installazione sia unica all'interno del file system. Ciò si ottiene rinominando le directory e i file chiave in base alla versione runtime. I nomi effettivi degli eseguibili saranno simili a *ruby {MAJOR.MINOR}* (ad esempio o). `ruby3.2` `ruby3.4` Ruby3.4 fornisce anche il binario con namespace MRI (Matz's Ruby Interpreter)`ruby3.4-mri`, che si riferisce all'implementazione di riferimento standard basata su C di. Ruby Tuttavia, può essere attiva solo una Ruby versione alla volta. Questa versione attiva fornisce le directory e i nomi di file predefiniti, come *ruby*, *gem* o *bundle*, indirizzandoli al runtime attualmente attivo. 

 *Ciò si ottiene utilizzando le funzionalità dello strumento delle alternative.* È importante ricordare che i nomi eseguibili predefiniti sono virtuali e possono cambiare in qualsiasi momento quando si fa riferimento a una Ruby versione installata diversa. Questa flessibilità consente al software che utilizza *ruby* in the shebang di selezionare la versione desiderata quando viene richiamata. Tuttavia, quando Ruby è richiesta una versione specifica di, è possibile ottenere la persistenza della versione chiamando l'eseguibile con namespace (ad esempio `ruby3.2` or`ruby3.4`), che utilizzerà sempre la versione specificata del runtime. Inoltre, gli eseguibili con namespace degli strumenti *gem* e *bundler*, come,,, or`ruby3.2-gem`, `ruby3.4-gem` sono sempre associati alla `ruby3.2-bundler` versione corrispondente`ruby3.4-bundler`, indipendentemente dal runtime attualmente attivo. Ruby 

 Rubyè distribuito come diversi pacchetti con namespace che iniziano con "». `ruby{MAJOR.MINOR}` Questi pacchetti forniscono *ruby*, versioni compatibili degli strumenti *gem* e *bundler*, documentazione, librerie e altro. *Ad esempio, il runtime core Ruby 3.2 è fornito dal `ruby3.2` pacchetto, che inserisce `ruby3.2-rubygems` (fornendo *gem*) e `ruby3.2-rubygem-bundler` (fornendo *bundle e bundler*) come dipendenze.* 

 *Dopo aver installato una Ruby versione, le voci relative agli strumenti complementari potrebbero essere visualizzate come nulle nella configurazione delle alternative.* Questo può essere verificato `alternatives --display ruby` eseguendo. Se le voci appaiono come nulle, devono essere registrate manualmente utilizzando`alternatives --install`. Ad esempio, per registrare tutti gli strumenti complementari per Ruby 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
```

 Il valore di priorità (ad esempio, 34 per Ruby 3.4, 32 per Ruby 3.2) deve corrispondere alla priorità utilizzata nella voce alternativa principale di *ruby*. Una volta registrati, gli strumenti complementari verranno gestiti automaticamente insieme all'alternativa *ruby*. 

 Lo strumento *delle alternative* fornisce un unico comando per passare da una Ruby versione all'altra. Per impostazione predefinita, *le alternative* sono configurate per essere in modalità auto, che utilizza le priorità per determinare la Ruby versione attualmente attiva. Tuttavia, è possibile attivare qualsiasi versione installata in qualsiasi momento. Attualmente, tutte le versioni supportate di Ruby hanno la stessa priorità, il che significa che la prima versione installata verrà attivata automaticamente. 

**Alcuni esempi utili di utilizzo di *alternative***

1. Controlla per quali *alternative* è configurato

   ```
   alternatives --list
   ```

1. Controlla la *configurazione attuale di ruby*

   ```
   alternatives --display ruby
   ```

1. Cambia la versione in modo interattivo Ruby

   ```
   alternatives --config ruby
   ```

1. Passa alla modalità manuale e seleziona una versione specifica

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

1. Torna alla modalità di selezione automatica della versione

   ```
   alternatives --auto ruby
   ```