AL2023 での Ruby - Amazon Linux 2023

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

AL2023 での Ruby

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

これを行うには、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
  2. Ruby の現在の設定を確認する

    alternatives --display ruby
  3. Ruby バージョンをインタラクティブに変更する

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

    alternatives --set ruby /usr/bin/ruby{MAJOR.MINOR}
  5. バージョンの選択を自動モードに戻す

    alternatives --auto ruby