GraalVMアップデータ
- 使用可能なコンポーネントのチェック
- GraalVM Communityへのコンポーネントのインストール
- GraalVM Enterpriseへのコンポーネントのインストール
- コンポーネントの手動インストール
- ローカル・コレクションからのコンポーネントのインストール
- コンポーネントのアンインストール
- GraalVMのアップグレード
- イメージの再ビルド
- コンポーネントおよびファイルの置換
- プロキシの構成
- インストールの構成
- 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からコンポーネントをダウンロードします。
- GraalVMバージョンで使用可能なコンポーネントとわかりやすい名前のリストを入手します:
gu available ComponentId値を使用してコンポーネント・パッケージをインストールします。たとえば、jsの場合:gu install jsGraalVMアップデータは、最初にコンポーネントのリストをダウンロードし、次にリスト内の情報を使用して実際のコンポーネント・パッケージをダウンロードして、インストールします。インストール中にさらに詳細な出力を表示し(ダウンロードの進行状況バーなど)、バージョンおよび依存性情報を出力するには、
-v(--verbose)スイッチを使用します。
別のコンポーネントに依存するコンポーネントがインストールされている場合、GraalVMアップデータは適切な依存性を検索して、これもインストールします。必要なコンポーネントが見つからない場合、インストールは失敗します。
GraalVM Enterpriseへのコンポーネントのインストール
コンポーネントは、GraalVMアップデータ: gu install ComponentIdを使用して、コンポーネントのID別にGraalVM Enterprise Editionにインストールできます。GraalVMアップデータは、Oracleのストレージ・ポイントからコンポーネントをダウンロードします。
コンポーネントをGraalVM Enterpriseにインストールするには、有効な電子メール・アドレスを入力し、指定したコンポーネントのライセンスに同意する必要があります。GraalVMアップデータは、ユーザーの電子メールにバインドされたダウンロード・トークン(個人アクセス・トークンで、パスワード使用の代替方法)を使用し、同意したライセンスのセットを定義します。次の手順に従って、コンポーネントをGraalVM Enterprise(ネイティブ・イメージなど)にインストールします:
-
gu availableを実行して、インストールしたGraalVM Enterprise Editionで使用可能なコンポーネントをリストします。gu available -
ComponentId値を使用してコンポーネントをインストールします:gu install native-image有効な電子メール・アドレスを指定するか、ダウンロード・トークンを入力して
[ENTER]を押すように、メッセージが表示されます。これが最初のインストールであれば、まだライセンスに同意していません。次に、[ENTER]を押します。 -
正しい電子メール・アドレスを入力します。電子メール・アドレスを確認し、ライセンスに同意するための電子メールがすぐに送信されます。電子メール・アドレスが指定されていない場合、
guはインストールを中止し、ダウンロード・トークンが指定されなかったことを示すエラー・メッセージが出力されます。 -
電子メール・クライアントに移動し、アーリー・アダプタ・バージョンのライセンスを含むGraalVM Enterprise EditionのOracle Technology Networkライセンス契約を確認します。
-
ライセンスに同意します。このようにして、ライセンスの同意を確認し、ダウンロード・トークンを同時に生成します。
-
コンソール・ウィンドウに戻り、
[ENTER]を押して続行します。コンピュータ内でダウンロード・トークンを格納する場所を尋ねられます。デフォルトでは、ダウンロード・トークンはユーザーのホーム・ディレクトリの~/.gu/configファイルに保存されます。デフォルトの場所を確認するには、yesと入力します。コンポーネントのダウンロードとインストールが開始されます。
インストールが完了したら、同じコマンドgu install ComponentIdを使用して他のコンポーネントのインストールを続行できます。GraalVMアップデータが~/.gu/configを読み取るため、ライセンスに再度同意する必要はありません。
次の側面を考慮します:
- 1つのダウンロード・トークンは、1つの電子メール・アドレスに関連付けられます。
- 同じ電子メール・アドレスを使用して別のコンピュータからGraalVM Enterpriseアーティファクトをダウンロードすると、既存のダウンロード・トークンが無効になります。
- ダウンロード・トークンを別のコンピュータに転送できます。
guではこれを受け入れます。 - ライセンス・テキストが変更された場合のみ、ライセンスに再度同意するように求められます。
次のコマンドは、ダウンロード・トークンを管理するのに役立ちます:
--email <address>。ダウンロード・トークンの生成に使用される電子メール・アドレスを出力します--config <path>。ダウンロード・トークンへのパスを提供します--show-ee-token。保存されたダウンロード・トークンを出力します
環境変数を介したダウンロード・トークンの指定
ダウンロード・トークンは、環境変数を介して提供することもできます。これは、継続的インテグレーション(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ファイルに格納されているトークンより優先されます。
コンポーネントの手動インストール
コンポーネントはローカル・ファイルからインストールできます。つまり、手動でインストールできます。
-
オペレーティング・システム、Javaバージョンおよびアーキテクチャ(該当する場合)を考慮して、コンポーネントを次の場所からダウンロードします:
- GraalVM Enterprise Editionの場合、Oracle GraalVMダウンロード
- GraalVM Community Editionの場合、GitHub
-
適切な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の最新バージョンをダウンロードしようとします(使用可能な場合)。
次の側面を考慮します:
- 既存のインストールを書き換えませんが、新しいディレクトリに解凍し、場所のパスを出力します。
- また、現在のGraalVMインストールにオプションのコンポーネントがインストールされているかどうかを検証し、それらも更新します。
- 選択したGraalVMインストールを指す環境変数(
PATHなど)が設定に含まれている場合、これらの変数は手動で更新する必要があります。
エディションを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 ...]
現在、次のオプションがサポートされています:
-0, --dry-run: テスト実行。何も変更しません-c, --catalog: パラメータをGraalVMコンポーネント・カタログからのコンポーネントIDとして扱います。これがデフォルトです。-C, --custom-catalog <url>: 特定のカタログURLを使用してコンポーネントを検索します-L, --local-file: パラメータをパッケージ化されたコンポーネントのローカル・ファイル名として扱います-M:guがインストール済コンポーネントの依存性を無視するように強制します-f, --force: 上書きを強制し、バージョンの確認をバイパスします-i, --fail-existing: 既存のコンポーネントで失敗します-n, --no-progress: ダウンロードの進行状況を表示しません-o, --overwrite: 異なるファイルを上書きします-r, --replace: 既存のコンポーネントを置き換えます-s, --no-verify-jars: コンポーネント・アーカイブの整合性検証をスキップします-u, --url: パラメータをパッケージ化されたコンポーネントのURLとして解釈します-v, --verbose: 冗長にします。バージョンおよび依存性情報を出力します-x, --ignore: 失敗を無視します-y, --only-validate: インストールせず、互換性および競合するファイルのチェックのみ行います-Y, --validate-before: ディスク変更の前に、ファイル競合をダウンロード、検証およびチェックします
GraalVMアップデータ・コマンドの概要
コマンドライン・ヘルプを使用するには、guまたはgu -hを実行します。特定のコマンドに固有のヘルプを取得するには、gu <command> -hを実行します。たとえば、gu install -hです。
GraalVMアップデータの使用オプション:
gu info [-cClLnprstuvV] <param>: (ファイル、URLまたはカタログから)特定のコンポーネントに関する情報を出力しますgu available [-aClvV] <expr>: カタログで使用可能なコンポーネントをリストしますgu install [--0CcDfiLMnosruvyxY] <param>: コンポーネント・パッケージをインストールしますgu list [-clv] <expression>: インストール済のコンポーネントまたはカタログのコンポーネントをリストしますgu remove [-0DfMxv] <id>: コンポーネントをアンインストールしますgu upgrade [-cCnLsuxSd] [<ver>] [<cmp>]: 最新のGraalVMバージョンにアップグレードしますgu rebuild-images: ネイティブ・ランチャを再ビルドします。詳細な使用方法については、-hを使用してください
GraalVMアップデータの共通オプション:
-A, --auto-yes: 質問に対してYESまたはACCEPTを指定します-c, --catalog: パラメータをGraalVMコンポーネントのカタログからのコンポーネントIDとして扱います。これがデフォルトです。-C, --custom-catalog <url>: URLにあるユーザー指定のカタログを使用します-e, --debug: デバッグを有効にし、スタック・トレースを出力します-E, --no-catalog-errors: 1つ以上のカタログが機能している場合は停止しません-h, --help: ヘルプを出力します-L, --local-file, --file: パラメータをパッケージ化されたコンポーネントのローカル・ファイル名として扱います-N, --non-interactive: 非対話型モードを有効にします。入力が必要な場合は失敗します--show-version: バージョン情報を出力して続行します-u, --url: パラメータをパッケージ化されたコンポーネントのURLとして解釈します-v, --verbose: 詳細な出力を有効にします。バージョンおよび依存性情報を出力します--version: バージョンを出力します
追加オプション:
--email <address>: ダウンロード・トークンの生成に使用される電子メール・アドレスを出力します--config <path>: ダウンロード・トークンへのパスを提供します--show-ee-token: 保存されたダウンロード・トークンを出力します-k, --public-key <path>: 検証用のカスタムGPG公開キーへのパスを指定します-U, --username <username>: Oracleコンポーネント・リポジトリにログインするためのユーザー名を入力します
次に読むもの
プラットフォームごとのGraalVMコンポーネントの可用性およびサポートについての情報に関する項を確認してください。
たとえば、Windowsでは、ネイティブ・イメージ・コンポーネントをインストールするには、Visual Studio CodeとMicrosoft Visual C++(MSVC)が必要です。Visual Studioビルド・ツールおよびWindows 10 SDKをインストールし、ネイティブ・イメージの使用を開始するためのステップごとの手順は、こちらを参照してください。