リリースと署名の確かめ方
安全にインストール、更新、削除します。
インストール
curl -fsSL https://agi-labo.com/wings/install.sh | sh
インストーラーは、CLI 本体とリリース情報の署名を確かめてから配置します。 確認には、インストーラーに入っている公開鍵を使います。 最新版の番号は、Console で公開している情報とも HTTPS で照合します。 Windows には対応していません。
この1行の方法では、インストーラーと公開鍵を配る HTTPS のサイトを信頼します。 インストーラー自体の署名は、実行前に確かめません。 先に署名を検証したい場合は、次の手順を使ってください。
curl | sh では、ダウンロードの失敗が sh に伝わりません。
ただし、ダウンロードが途中で切れた場合は、末尾の呼び出しまで届かなければ処理を始めない構造です。
署名を確かめてから実行する(上級)
版を指定してインストーラーと署名を取得します。 次の手順は、固定した公開鍵で検証が成功したときだけ実行します。
(
set -eu
tmp_dir=$(mktemp -d)
trap 'rm -rf "$tmp_dir"' 0 HUP INT TERM
curl -fsSLo "$tmp_dir/install.sh" https://releases.agi-labo.com/wings/v1.4.16/install.sh
curl -fsSLo "$tmp_dir/install.sh.sshsig" https://releases.agi-labo.com/wings/v1.4.16/install.sh.sshsig
printf '%s\n' 'agi-wings-release ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIP0F1UbSUyGSbSD6+Gb1TKPiWgokOw5fFW7bmdWaTdro' > "$tmp_dir/allowed-signers"
ssh-keygen -Y verify -f "$tmp_dir/allowed-signers" -I agi-wings-release -n agi-wings-release -s "$tmp_dir/install.sh.sshsig" < "$tmp_dir/install.sh"
sh "$tmp_dir/install.sh"
)
更新する
wings update --check
wings update
wings version
通常の更新では、最新版を示す情報、ファイル一覧、チェックサム、本体の署名を検証します。 最新版を示す署名には、短い有効期限があります。 手元に更新の記録がない初回は、Console の current-release 情報も HTTPS で確認します。 検証に失敗した場合は、今の CLI を置き換えません。
版を指定する
wings update --base-url https://releases.agi-labo.com/wings/vX.Y.Z
版を指定するときは、--base-url を明示してください。
更新コマンドは、AGI_WINGS_INSTALL_BASE_URL と AGI_WINGS_CURRENT_RELEASE_URL を参照しません。
通常は、古い版への更新を拒否します。 運営が短期の署名付きで許可した場合だけ、通常の更新手順で戻せます。
macOS の notarization と Gatekeeper による許可は保証していません。 OS が実行を止めた場合は、署名の検証結果を確認してサポートへ問い合わせてください。 警告だけを無条件に回避しないでください。
アンインストール
wings logout
wings skill uninstall --target all
rm "$HOME/.agi-tools/bin/wings"
サーバー側のログアウトに失敗した場合は、表示された案内に従ってください。 アンインストールしても、クラウドの Handler などは消えません。 データ削除は、別に行います。