アップデート
ThinkTerm が自動でアップデートをインストールすることはありません。確認し、知らせ、あとはあなたの判断を待ちます。
確認する
設定 → ソフトウェアアップデート に情報がまとまっています。実行中のバージョン、最新リリース、前回確認した時刻、変更内容です。
アップデートを確認はその場で確認を実行します。自動アップデートと確認の頻度が、自動確認の間隔を決めます。オフ、毎日、毎週、または日・時間・分単位の間隔です。新機能は提示されているバージョンのリリースノートを開きます。すべてのリリースを表示は一覧を開きます。
新しいバージョンが見つかると、画面を占有するウィンドウではなくドットが表示されます。あわせて通知も出ます——ThinkTerm の新しいバージョンがあります——クリックすると同じページに移動します。
インストールする
アップデートをインストール はファイルをその場で置き換えます。置き換えのあいだも目の前のウィンドウは使えますし、ThinkTerm は起動時のバージョンのまま動き続けます。
最後の点は誤解されやすいので、確認メッセージがはっきり伝えます。ThinkTerm x.y.z をインストールしました。ThinkTerm を終了して開き直すと新しいバージョンになります。 実行中のセッションの下で勝手に切り替わることはありません。
ファイルを置き換えてよいのは誰か
ThinkTerm が更新するのは自分でインストールしたコピー、つまりインストールスクリプト経由のものだけです。それ以外のインストール方法にはそれぞれ持ち主がいます。パッケージマネージャー、Homebrew、Nix、AppImage 自身のアップデーター、あるいは cargo build を実行した本人です。そうした場合、ThinkTerm はファイルを上書きせず、持ち主を伝えます。
| このコピーのインストール方法 | ThinkTerm の動作 |
|---|---|
| インストールスクリプト | 同じ版を保ったままアップデートをインストール |
手動で置いた ThinkTerm.app | その場所で置き換え、コマンドラインツールを ~/.local/bin に追加 |
| AppImage | AppImageUpdate、またはリリースページの新しい AppImage を案内 |
| Homebrew | brew upgrade thinkterm の実行を案内 |
| Nix | Nix の設定から更新するよう案内 |
| システムのパッケージマネージャー | apt や dnf など元の方法で新しいパッケージを入れるよう案内 |
| Windows インストーラー | 新しいインストーラーをダウンロードして実行 |
| ソースからのビルド | リポジトリを更新して再ビルドするよう案内 |
| 判別できない | 置き換えを拒否し、元の方法で更新するよう案内 |
コマンドラインから
thinkterm update は設定画面のボタンとまったく同じ規則に従います。
thinkterm update # 確認し、インストール前に尋ねる
thinkterm update --check # 新しいリリースの有無を報告するだけで、インストールしない
thinkterm update -y # 確認せずにインストール
thinkterm update --version X # 最新版ではなくリリース X をインストール(ダウングレードも可)どちらの経路もインストーラーを実装し直してはいません。処理は install.sh に渡されます。アーカイブの構成と、デスクトップ版・サーバー版の切り替えを把握しているのはこのスクリプトだけだからです。スクリプトはインストール対象のリリースからではなく、デフォルトブランチから取得されます。こうすることで、インストーラーの修正が次のリリースを待たずに既存のすべてのインストールへ届きます。
リモートサーバーを更新する
クライアントとサーバーはプロトコルが変わると通信できなくなります。よくあるのは、デスクトップ側を更新した一方で、どこかのホストのサーバーが先月のビルドのまま動いているという状況です。
ThinkTerm はそのホストへの SSH セッションをすでに持っているため、あなたに手動ログインを強いる代わりに、自分で不一致を修復できます。attach 時にバージョン不一致を検出すると、自分のリリースをそのホストへインストールしてよいか尋ねます。まずホストのインストールマニフェストを読むので、向こうがデスクトップ版なら GUI は保たれます。そして 2 本目の SSH セッションでインストーラーを実行し、出力を接続ウィンドウへ中継します。
そのあと実行中のセッションがどうなるかは、次の設定で決まります。
リモートサーバー更新時にセッションを維持 —— 実行中のサーバーは停止せず、ペインを新しいバージョンに引き継ぎます。実行中の処理は中断されません。
オフの場合、ThinkTerm は古いサーバーを停止する前に確認します。停止するとそのサーバーが保持しているセッションはすべて終わるからです。これが無断で行われることはありません。
引き継ぎ自体は リモート で説明している仕組みと同じです。実行中のサーバーがペインを新しいバイナリへ渡し、セッション側はそれに気づきません。
