メインコンテンツへスキップ

サーバーのアップグレード

このドキュメントでは、Blocklet Server コマンドラインインターフェース(CLI)を利用可能な最新バージョンにアップグレードする手順を説明します。

コマンドの使用法

upgrade コマンドは、Blocklet Server CLI の最新バージョンを取得してインストールするプロセスを自動化します。

bash
blocklet server upgrade

アップグレードプロセス

このコマンドは、安全で正常なアップグレードを保証するための一連の手順を実行します。プロセスは以下の通りです:

  1. バージョンの確認

    コマンドはまず npm レジストリから利用可能な最新のバージョン番号を取得し、現在インストールされているバージョンと比較します。現在のバージョンがすでに最新である場合、プロセスは終了します。

  2. 権限の検証

    CLI ツールがインストールされているディレクトリに対して、現在のユーザーが必要な書き込み権限を持っているかを確認します。権限が不十分な場合、コマンドは失敗し、sudo を付けて再実行するよう提案します。

  3. サーバーのシャットダウン

    Blocklet Server のインスタンスが現在実行中の場合、アップグレードコマンドは更新中の競合を防ぐためにサーバーを自動的に停止します。元の実行状態とデータディレクトリは保存されます。

  4. インストール

    コマンドは、システムで検出されたパッケージマネージャー(例:npm、yarn)を使用して、CLI パッケージの最新バージョンをダウンロードしてインストールします。

  5. サーバーの再起動

    アップグレード前にサーバーが実行されていた場合、コマンドは元のデータディレクトリから自動的にサーバーを再起動し、サービスの継続性を確保します。

  6. 確認

    正常に完了すると、アップグレード後の新しいバージョン番号を示す確認メッセージが表示されます。

以下の図は、upgrade コマンドのワークフローを示しています。

Upgrade Server

実行例

コマンドを実行すると、アップグレードの進捗状況が表示されます。

bash
$ blocklet server upgrade

ℹ Using blocklet server from /home/user/.nvm/versions/node/v16.20.2/bin/blocklet
ℹ Checking permissions...
ℹ Current version is 1.8.0, found latest version 1.8.1
ℹ Begin upgrade
ℹ Stopping Blocklet Server ...
ℹ Installing Blocklet Server by npm install -g @blocklet/cli@latest ...

+ @blocklet/cli@1.8.1
added 1 package from 1 contributor, updated 1 package and audited 931 packages in 10.2s

ℹ Restarting Blocklet Server ...
✔ Blocklet Server started
✔ Blocklet Server upgrade success, current version is 1.8.1

権限が不十分な場合

インストールディレクトリを変更するために必要な権限がない場合、コマンドはエラーを出力し、ガイダンスを提供します。

bash
$ blocklet server upgrade

ℹ Using blocklet server from /usr/local/bin/blocklet
ℹ Checking permissions...
✖ Seems you do not have permission to upgrade Blocklet Server version
ℹ Maybe you can try run sudo blocklet server upgrade

この場合、提案された通り sudo を付けてコマンドを実行する必要があります:

bash
sudo blocklet server upgrade

すでに最新の場合

Blocklet Server CLI がすでに最新バージョンの場合、コマンドは何もする必要がないことを通知します。

bash
$ blocklet server upgrade

ℹ Using blocklet server from /home/user/.nvm/versions/node/v16.20.2/bin/blocklet
ℹ Checking permissions...
ℹ The current version 1.8.1 is the latest version, no need to upgrade