GraalVMアップデータ

GraalVMアップデータ(gu)は、オプションのGraalVM言語ランタイムおよびユーティリティをインストールして管理するためのコマンドライン・ツールです。GraalVMのコア・インストールで使用できます。インストールを支援するために、言語ランタイムおよびユーティリティはJARファイルとしてあらかじめパッケージ化され、ドキュメントではコンポーネントと呼ばれます。GraalVMアップデータは、ローカルのGraalVMインストールを新しいバージョンに更新したり、CommunityからEnterprise Editionにアップグレードするために使用できます。詳細は、「GraalVMのアップグレード」を参照してください。

使用可能なコンポーネントのチェック

GraalVMインストールにすでに出荷されているコンポーネントまたはインストール済のコンポーネントを確認するには、listコマンドを実行します:

gu list

インストールするGraalVMバージョンで使用可能なコンポーネントを確認するには、gu availableコマンドを実行します:

gu available
Downloading: Component catalog from ...
ComponentId              Version            Component name                
-----------------------------------------------------------------------------
espresso                 <version>          Java on Truffle               
espresso-llvm            <version>          Java on Truffle LLVM Java library
js                       <version>          JavaScript
llvm                     <version>          LLVM
llvm-toolchain           <version>          LLVM.org toolchain            
native-image             <version>          Native Image                  
nodejs                   <version>          Graal.nodejs                  
python                   <version>          Graal.Python                  
R                        <version>          FastR                         
ruby                     <version>          TruffleRuby                   
wasm                     <version>          GraalWasm                     

インストールするコンポーネントのComponentId値を書き留めます。

GraalVMアップデータは、コンポーネントのバージョンが現在のGraalVMインストールに適しているかどうかを検証します。あるコンポーネントが、その操作の前提条件として別のコンポーネントを必要とする場合があります。GraalVMアップデータは、そのような要件を検証し、必要な依存性のダウンロードを試みるか、コンポーネントの要件が満たされない場合はインストールを中止します。Oracle GraalVM Enterprise Edition用のコンポーネントをGraalVM Community Editionにインストールすることはできません。

ほとんどの場合、Node.js、R、Ruby、PythonおよびWebAssembly言語の一般サポートは、初期状態で使用できます。コンポーネントのインストール後のメッセージにある推奨事項に従って、システムに依存する構成を微調整することをお薦めします。

GraalVM Communityへのコンポーネントのインストール

コンポーネントは、GraalVMアップデータ: gu install ComponentIdを使用して、コンポーネントのID別にGraalVM Community Editionにインストールできます。GraalVMアップデータは、GitHubからコンポーネントをダウンロードします。

  1. GraalVMバージョンで使用可能なコンポーネントとわかりやすい名前のリストを入手します:
     gu available
    
  2. ComponentId値を使用してコンポーネント・パッケージをインストールします。たとえば、jsの場合:
     gu install js
    

    GraalVMアップデータは、最初にコンポーネントのリストをダウンロードし、次にリスト内の情報を使用して実際のコンポーネント・パッケージをダウンロードして、インストールします。インストール中にさらに詳細な出力を表示し(ダウンロードの進行状況バーなど)、バージョンおよび依存性情報を出力するには、-v (--verbose)スイッチを使用します。

別のコンポーネントに依存するコンポーネントがインストールされている場合、GraalVMアップデータは適切な依存性を検索して、これもインストールします。必要なコンポーネントが見つからない場合、インストールは失敗します。

GraalVM Enterpriseへのコンポーネントのインストール

コンポーネントは、GraalVMアップデータ: gu install ComponentIdを使用して、コンポーネントのID別にGraalVM Enterprise Editionにインストールできます。GraalVMアップデータは、Oracleのストレージ・ポイントからコンポーネントをダウンロードします。

コンポーネントをGraalVM Enterpriseにインストールするには、有効な電子メール・アドレスを入力し、指定したコンポーネントのライセンスに同意する必要があります。GraalVMアップデータは、ユーザーの電子メールにバインドされたダウンロード・トークン(個人アクセス・トークンで、パスワード使用の代替方法)を使用し、同意したライセンスのセットを定義します。次の手順に従って、コンポーネントをGraalVM Enterprise(ネイティブ・イメージなど)にインストールします:

  1. gu availableを実行して、インストールしたGraalVM Enterprise Editionで使用可能なコンポーネントをリストします。

     gu available
    
  2. ComponentId値を使用してコンポーネントをインストールします:

     gu install native-image
    

    有効な電子メール・アドレスを指定するか、ダウンロード・トークンを入力して[ENTER]を押すように、メッセージが表示されます。これが最初のインストールであれば、まだライセンスに同意していません。次に、[ENTER]を押します。

  3. 正しい電子メール・アドレスを入力します。電子メール・アドレスを確認し、ライセンスに同意するための電子メールがすぐに送信されます。電子メール・アドレスが指定されていない場合、guはインストールを中止し、ダウンロード・トークンが指定されなかったことを示すエラー・メッセージが出力されます。

  4. 電子メール・クライアントに移動し、アーリー・アダプタ・バージョンのライセンスを含むGraalVM Enterprise EditionのOracle Technology Networkライセンス契約を確認します。

  5. ライセンスに同意します。このようにして、ライセンスの同意を確認し、ダウンロード・トークンを同時に生成します。

  6. コンソール・ウィンドウに戻り、[ENTER]を押して続行します。コンピュータ内でダウンロード・トークンを格納する場所を尋ねられます。デフォルトでは、ダウンロード・トークンはユーザーのホーム・ディレクトリの~/.gu/configファイルに保存されます。デフォルトの場所を確認するには、yesと入力します。コンポーネントのダウンロードとインストールが開始されます。

インストールが完了したら、同じコマンドgu install ComponentIdを使用して他のコンポーネントのインストールを続行できます。GraalVMアップデータが~/.gu/configを読み取るため、ライセンスに再度同意する必要はありません。

次の側面を考慮します:

次のコマンドは、ダウンロード・トークンを管理するのに役立ちます:

環境変数を介したダウンロード・トークンの指定

ダウンロード・トークンは、環境変数を介して提供することもできます。これは、継続的インテグレーション(CI)や継続的配信(CD)の設定など、自動化のユースケースに役立ちます。

ノート: GraalVM用のGitHub Actionには、ダウンロード・トークンを使用してCI/CDを設定する方法の手順があります。

前提条件として、GraalVMアップデータを手動で使用して、GraalVMおよび必要なコンポーネントを設定します。この一部として、GraalVMアップデータは有効なダウンロード・トークンの作成に役立ちます。

このダウンロード・トークンを表示するには、次を実行します:

gu --show-ee-token

このダウンロード・トークンを別のマシンで使用するには、ダウンロード・トークンをコピーし、$GRAAL_EE_DOWNLOAD_TOKEN環境変数を設定します:

export GRAAL_EE_DOWNLOAD_TOKEN=<valid-download-token>

GraalVMアップデータは、変数からダウンロード・トークンを読み取ります。ノート: $GRAAL_EE_DOWNLOAD_TOKENは、~/.gu/configファイルに格納されているトークンより優先されます。

コンポーネントの手動インストール

コンポーネントはローカル・ファイルからインストールできます。つまり、手動でインストールできます。

  1. オペレーティング・システム、Javaバージョンおよびアーキテクチャ(該当する場合)を考慮して、コンポーネントを次の場所からダウンロードします:

  2. 適切なJARファイルをダウンロードしたら、次のコマンドを使用してインストールします:

     gu -L install component.jar
    

    -Lオプション(--local-fileまたは--fileと同等)は、ダウンロードされたJARからコンポーネントをインストールします。ただし、コンポーネントは他のコンポーネントに依存する場合があります(たとえば、RubyはLLVMツールチェーンに依存します)。たとえば、必要なコンポーネントがまだインストールされていない場合、gu -L install component.jarは失敗します。すべての依存性が同じディレクトリにダウンロードされている場合は、次を実行できます:

     gu -L install -D
    

ローカル・コレクションからのコンポーネントのインストール

コンポーネントは、ローカルのファイル・フォルダまたはローカル・ネットワーク上で共有されたフォルダに事前に手動でダウンロードできます。GraalVMアップデータは、カタログのかわりにそのフォルダを使用できますコンポーネント・コレクション用に使用するディレクトリを指定します:

gu install -C /path/to/downloads/directory ComponentId

ファイル名のかわりにコンポーネントID (rubyなど)を入力できます。また、GraalVMアップデータは、ローカル・コンポーネント・コレクション内で必要な依存性の検出も試みます。

特定のディレクトリからコンポーネントをインストールする場合、ワイルドカードを使用して正しいバージョン番号を持つすべてのコンポーネントをインストールできます。たとえば、native-imageコンポーネント、またはnativeで始まるすべてのコンポーネントをインストールできます:

gu install -C ~/Download/Components/ native*

コンポーネントのアンインストール

コンポーネントは、不要になった場合はGraalVMからアンインストールできます。特定のコンポーネントをアンインストールするには、そのComponentIdを使用します。gu listを実行して、正確なComponentIdを見つけます。

コンポーネントをアンインストールするコマンドは次のとおりです:

gu remove ComponentId

複数のコンポーネントが(たとえば) rubyで終わる場合、インストーラはコンポーネントのフルネーム(org.graalvm.ruby)が必要であるというエラー・メッセージを出力します。

LLVMツールチェーン・コンポーネントは、依存コンポーネントがインストールされたままの場合、アンインストールに失敗する可能性があります。この場合、依存するコンポーネントを先に削除するか、明示的に選択したコンポーネントに加えて依存するコンポーネントも削除する-Dオプションを追加します:

gu -D remove llvm-toolchain

GraalVMのアップグレード

既存のGraalVMインストールをGraalVMアップデータで最新バージョンに更新できます。

たとえば、GraalVM 20.xがインストールされている場合は、次を使用して使用可能な最新バージョンに更新します:

gu upgrade

GraalVMアップデータは、GraalVM EnterpriseまたはGraalVM Community Editionの最新バージョンをダウンロードしようとします(使用可能な場合)。

次の側面を考慮します:

エディションをCommunityからEnterpriseにアップグレードすることもできます。GraalVM Community EditionをEnterpriseにアップグレードするには、次を実行します:

gu upgrade --edition ee

現在のインストールの次に、最新バージョンのGraalVM Enterprise Editionがインストールされます。GraalVMアップデータは、オプションのコンポーネントが存在することを確認し、コンポーネントがインストールに適しているかどうかを検証し、それもアップグレードします。

ノート: GraalVMアップデータでは、GraalVMを新しいバージョンにのみアップグレードできます。古いバージョンへのダウングレードや、GraalVM EnterpriseからCommunity Editionへのダウングレードは実行できません。

イメージの再ビルド

GraalVMの言語ランタイム・コンポーネントは変更される場合があります。たとえば:

ネイティブ・バイナリ(言語ランチャ)を再構築およびリフレッシュするには、次のコマンドを使用します:

gu rebuild-images [--verbose] polyglot|libpolyglot|js|llvm|python|ruby|R... [custom native-image args]...

コンポーネントおよびファイルの置換

コンポーネントは1回のみインストールできます。同じIDのコンポーネントがすでにインストールされている場合は、GraalVMアップデータによって、コンポーネントのインストールが拒否されます。ただし、インストールされているコンポーネントを置き換えることができます。GraalVMアップデータは、最初にコンポーネントをアンインストールしてから、新しいものをインストールします。

コンポーネントを置き換えるには、-rオプションと-L (--local-fileまたは--file)オプションを使用し、パッケージ化されたコンポーネントのローカル・ファイル名としてパラメータを扱います:

gu install -L -r component.jar
gu install -r ruby

このプロセスは、gu removeが最初に実行され、次にgu installが実行される場合と同じです。

インストールするバージョンと既存のバージョンが異なる場合にも、GraalVMアップデータは、既存のファイルを上書きすることを拒否します。変更された場合や破損した場合など、ファイルの内容をリフレッシュすることが必要になる場合があります。この場合は、-oオプションを使用します:

gu install -L -o component.jar
gu install -o ruby

次に、GraalVMアップデータは、コンポーネントに含まれているファイルを置き換えるようにユーザーに指示します。デフォルトでは、何も変更されません。または、-f (--force)オプションを使用して、ほとんどのチェックを無効にし、一致しないバージョンをユーザーがインストールできるようにします。

プロキシの構成

GraalVMアップデータがコンポーネント・カタログにアクセスするか、コンポーネントをダウンロードする必要がある場合は、HTTP/HTTPSプロキシ(それがネットワークで使用されているとき)を通過する必要があります。macOSでは、プロキシ設定はOSから自動的に取得されます。Linuxでは、guツールを起動する前に、http_proxyおよびhttps_proxy環境変数が適切に設定されていることを確認します。詳細は、ディストリビューションまたはデスクトップ環境(あるいはその両方)のドキュメントを参照してください。

GraalVMアップデータは、セキュリティ上の理由から、証明書またはホスト名の検証を無効にするオプションを意図的にサポートしていません。ユーザーは、GraalVMのデフォルトのセキュリティ・トラスト・ストアにプロキシの証明書を追加できます。ユーザーは、コンポーネントをフォルダに手動でダウンロードし、gu -L install /path/to/fileまたはgu -C /path/to/download/dir install componentを使用してローカル・ファイルシステムからインストールすることもできます。

インターネット・アクセスなしでの作業

マシンがインターネットからカタログおよびコンポーネントにアクセスしてダウンロードできない場合、GraalVMアップデータはローカル・ディレクトリからコンポーネントをインストールすることも、アクセス可能なネットワーク共有上のディレクトリからインストールすることもできます。

ディレクトリを準備し、インストールするすべてのコンポーネントとその依存性(他のGraalVMコンポーネントが機能する必要がある場合)をそのディレクトリにダウンロードする必要があります。

その後で、gu -L install /path/to/fileを使用できます(-Lオプションはローカル・ファイルを使用するように指定し、--local-fileまたは--fileと同等です)。-Dオプションを追加すると、GraalVMアップデータはインストール可能なファイルの隣のディレクトリで潜在的な依存性を検索します。また、gu -C /path/to/download/dir install componentも使用でき、指定したディレクトリの内容がコンポーネントのカタログとして機能します。

gu -Lでは、コンポーネントのファイル名を指定する必要がありますが、gu -C <dir>を使用する場合は、コンポーネントID (ComponentId)を指定する必要があります:

# Specify file location
gu -LD install /tmp/installables/ruby.jar

# Specify component name
gu -C /tmp/instalables install ruby

インストールの構成

GraalVMアップデータのインストール・コマンドは、複数のオプションおよびパラメータを受け入れます: shell gu install [-0CcDfiLMnosruvyxY] param [param ...]

現在、次のオプションがサポートされています:

GraalVMアップデータ・コマンドの概要

コマンドライン・ヘルプを使用するには、guまたはgu -hを実行します。特定のコマンドに固有のヘルプを取得するには、gu <command> -hを実行します。たとえば、gu install -hです。

GraalVMアップデータの使用オプション:

GraalVMアップデータの共通オプション:

追加オプション:

プラットフォームごとのGraalVMコンポーネントの可用性およびサポートについての情報に関する項を確認してください。

たとえば、Windowsでは、ネイティブ・イメージ・コンポーネントをインストールするには、Visual Studio CodeとMicrosoft Visual C++(MSVC)が必要です。Visual Studioビルド・ツールおよびWindows 10 SDKをインストールし、ネイティブ・イメージの使用を開始するためのステップごとの手順は、こちらを参照してください。