

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AL2023 での Ruby
<a name="ruby"></a>

 [https://www.ruby-lang.org/en/](https://www.ruby-lang.org/en/) AL2023 の は、バージョン 3.2 および 3.4 で表されます。Amazon Linux はアップストリームのサポートスケジュールに従い、どのRubyバージョンのサポートステータスも [Ruby ウェブサイト](https://www.ruby-lang.org/en/)でいつでも確認できます。サポートされているすべての Ruby バージョンには名前空間があり、同じシステムに同時にインストールできます。名前空間を使用すると、Ruby の各インストールがファイルシステム内で一意になります。これは、ランタイムバージョンに基づいてキーディレクトリおよびファイルの名前を変更することで可能になります。実際の実行可能ファイル名は *ruby{MAJOR.MINOR}* (例: `ruby3.2`または `ruby3.4`) のようになります。 Ruby 3.4 は、MRI (Matz の Interpreter) Ruby 名前空間バイナリ も提供します。これは`ruby3.4-mri`、 の標準の C ベースのリファレンス実装を参照しますRuby。ただし、アクティブにできる Ruby バージョンは一度に 1 つだけです。このアクティブなバージョンは、*ruby*、*gem*、*バンドル*などのデフォルトのディレクトリとファイル名を提供し、現在アクティブなランタイムを指します。

 これを行うには、*alternatives* ツールの機能を使用します。デフォルトの実行可能ファイル名は仮の名前であり、インストールされている別の Ruby バージョンを指す場合は、いつでも変更される可能性があることに注意してください。この柔軟性により、シェバンで *ruby* を使用して呼び出されたときに目的のバージョンを選択するソフトウェアが可能になります。ただし、特定のバージョンの Rubyが必要な場合、指定されたバージョンのランタイムを常に使用する名前空間付き実行可能ファイル ( `ruby3.2`や など`ruby3.4`) を呼び出すことで、バージョンの永続性を実現できます。さらに、、`ruby3.2-gem`、、 `ruby3.4-gem` `ruby3.2-bundler`などの *gem* および*バンドルツール*の名前空間付き実行可能ファイルは`ruby3.4-bundler`、現在アクティブなランタイムに関係なく、常に対応するRubyバージョンに関連付けられます。

 Ruby は、「」で始まる複数の名前空間パッケージとして配布されます`ruby{MAJOR.MINOR}`。これらのパッケージは、*Gem* および*バンドルツール*、ドキュメント、ライブラリなどの *ruby* 互換バージョンを提供します。たとえば、コア Ruby 3.2 ランタイムは `ruby3.2`パッケージによって提供され、依存関係として (*gem* `ruby3.2-rubygems`の提供) と `ruby3.2-rubygem-bundler` (*バンドル*と*バンドルの提供*) を取り込みます。

 Ruby バージョンをインストールした後、*代替*設定でコンパニオンツールのエントリが null と表示される場合があります。これは、 を実行して検証できます`alternatives --display ruby`。エントリが null と表示される場合は、 を使用して手動で登録する必要があります`alternatives --install`。たとえば、3.4 Ruby のすべてのコンパニオンツールを登録するには: 

```
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
```

 優先度値 (例: 3.4 の場合は Ruby 34、3.2 の場合は Ruby 32) は、メインの*ruby* 代替エントリで使用される優先度と一致する必要があります。登録すると、コンパニオンツールは *ruby* の代替手段とともに自動的に管理されます。

 *alternatives* ツールには、Ruby バージョンを切り替えるための単一のコマンドが用意されています。デフォルトでは、*alternatives* は自動モードに設定され、優先度を使用して現在アクティブな Ruby バージョンを決定します。ただし、インストールされているバージョンはどれも随時アクティブ化できます。現在、サポートされている Ruby バージョンの優先度はすべて同じです。つまり、最初にインストールされたバージョンが自動的にアクティブ化されます。

***alternatives* の便利な使用例**

1. どのような *alternatives* が設定されているかを確認します。

   ```
   alternatives --list
   ```

1. *Ruby* の現在の設定を確認する

   ```
   alternatives --display ruby
   ```

1. Ruby バージョンをインタラクティブに変更する

   ```
   alternatives --config ruby
   ```

1. 手動モードに切り替えて特定のバージョンを選択する

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

1. バージョンの選択を自動モードに戻す

   ```
   alternatives --auto ruby
   ```