15 KiB
| read_when | summary | title | x-i18n | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Довідник CLI для `openclaw update` (відносно безпечне оновлення джерела + автоматичний перезапуск Gateway) | Оновити |
|
openclaw update
Безпечно оновлюйте OpenClaw і перемикайтеся між каналами stable/beta/dev.
Якщо ви встановили через npm/pnpm/bun (глобальне встановлення, без git-метаданих), оновлення виконуються через потік менеджера пакетів у Оновлення.
Використання
openclaw update
openclaw update status
openclaw update wizard
openclaw update --channel beta
openclaw update --channel dev
openclaw update --tag beta
openclaw update --tag main
openclaw update --dry-run
openclaw update --no-restart
openclaw update --yes
openclaw update --json
openclaw --update
Параметри
--no-restart: пропустити перезапуск служби Gateway після успішного оновлення. Оновлення через менеджер пакетів, які перезапускають Gateway, перевіряють, що перезапущена служба повідомляє очікувану оновлену версію, перш ніж команда завершиться успішно.--channel <stable|beta|dev>: встановити канал оновлення (git + npm; зберігається в конфігурації).--tag <dist-tag|version|spec>: перевизначити ціль пакета лише для цього оновлення. Для пакетних встановленьmainвідповідаєgithub:openclaw/openclaw#main.--dry-run: переглянути заплановані дії оновлення (канал/тег/ціль/потік перезапуску) без запису конфігурації, встановлення, синхронізації plugins або перезапуску.--json: вивести машинно-читаний JSONUpdateRunResult, включно зpostUpdate.plugins.integrityDrifts, коли під час синхронізації plugins після оновлення виявлено дрейф артефактів npm plugin.--timeout <seconds>: тайм-аут для кожного кроку (типово 1800 с).--yes: пропустити запити підтвердження (наприклад, підтвердження пониження версії).
openclaw update не має прапорця --verbose. Використовуйте --dry-run, щоб переглянути
заплановані дії каналу/тега/встановлення/перезапуску, --json для машинно-читаних
результатів, і openclaw update status --json, коли потрібні лише відомості про канал і
доступність. Якщо ви налагоджуєте журнали Gateway під час оновлення,
докладність консолі та рівень файлових журналів налаштовуються окремо: Gateway --verbose впливає
на вивід у термінал/WebSocket, тоді як файлові журнали потребують logging.level: "debug" або
"trace" у конфігурації. Див. Журналювання Gateway.
update status
Показує активний канал оновлення + git-тег/гілку/SHA (для checkout з вихідного коду), а також доступність оновлень.
openclaw update status
openclaw update status --json
openclaw update status --timeout 10
Параметри:
--json: вивести машинно-читаний JSON стану.--timeout <seconds>: тайм-аут для перевірок (типово 3 с).
update wizard
Інтерактивний потік для вибору каналу оновлення та підтвердження, чи перезапускати Gateway
після оновлення (типово перезапускається). Якщо вибрати dev без git checkout, він
запропонує створити його.
Параметри:
--timeout <seconds>: тайм-аут для кожного кроку оновлення (типово1800)
Що він робить
Коли ви явно перемикаєте канали (--channel ...), OpenClaw також підтримує
відповідність методу встановлення:
dev→ забезпечує наявність git checkout (типово:~/openclaw, перевизначається черезOPENCLAW_GIT_DIR), оновлює його та встановлює глобальний CLI з цього checkout.stable→ встановлює з npm за допомогоюlatest.beta→ віддає перевагу npm dist-tagbeta, але повертається доlatest, коли beta відсутній або старіший за поточний стабільний випуск.
Автооновлювач ядра Gateway (коли ввімкнений через конфігурацію) запускає шлях оновлення CLI
поза активним обробником запитів Gateway. Оновлення через менеджер пакетів control-plane update.run
примусово виконують невідкладний перезапуск оновлення без cooldown після заміни пакета,
бо старий процес Gateway усе ще може мати в пам’яті фрагменти, що вказують на
файли, видалені новим пакетом.
Для встановлень через менеджер пакетів openclaw update визначає цільову версію пакета
перед викликом менеджера пакетів. Глобальні встановлення npm використовують поетапне
встановлення: OpenClaw встановлює новий пакет у тимчасовий npm-префікс, перевіряє
там інвентар запакованого dist, а потім замінює цим чистим деревом пакета
справжній глобальний префікс. Якщо перевірка не вдається, post-update doctor, синхронізація plugin і
перезапуск не запускаються з підозрілого дерева. Навіть коли встановлена версія
вже відповідає цільовій, команда оновлює глобальне встановлення пакета,
після чого запускає синхронізацію plugin, оновлення completions для основних команд і перезапуск. Це
підтримує відповідність запакованих sidecar-компонентів і записів plugins, що належать каналу, із
встановленою збіркою OpenClaw, залишаючи повні перебудови completions для команд plugins для
явних запусків openclaw completion --write-state.
Коли встановлено локальну керовану службу Gateway і перезапуск увімкнений,
оновлення через менеджер пакетів зупиняють запущену службу перед заміною дерева пакета,
потім оновлюють метадані служби з оновленого встановлення, перезапускають
службу та перевіряють, що перезапущений Gateway повідомляє очікувану версію, перш ніж
повідомити про успіх. На macOS перевірка після оновлення також підтверджує, що LaunchAgent
завантажений/запущений для активного профілю, а налаштований порт loopback
справний. Якщо plist встановлено, але launchd ним не керує, OpenClaw
автоматично повторно bootstrap і kickstart LaunchAgent, а потім повторно запускає
перевірки готовності health/version/channel. Якщо Gateway усе ще не стає
справним, команда завершується з ненульовим кодом і виводить шлях до журналу перезапуску, а також явні
інструкції з перезапуску, перевстановлення та відкату пакета. З --no-restart
заміна пакета все одно виконується, але керована служба не зупиняється і не
перезапускається, тому запущений Gateway може зберігати старий код, доки ви не перезапустите його
вручну.
Потік git checkout
Вибір каналу
stable: checkout останнього не-beta тегу, потім збирання та doctor.beta: віддати перевагу останньому тегу-beta, але повернутися до останнього стабільного тегу, коли beta відсутній або старіший.dev: checkoutmain, потім fetch і rebase.
Кроки оновлення
Не повинно бути незакомічених змін. Перемикає на вибраний канал (тег або гілку). Лише dev. Запускає lint і TypeScript build у тимчасовому worktree. Якщо tip не проходить, відступає назад до 10 комітів, щоб знайти найновіше чисте збирання. Виконує rebase на вибраний коміт (лише dev). Використовує менеджер пакетів репозиторію. Для pnpm checkout оновлювач bootstrap `pnpm` на вимогу (спочатку через `corepack`, потім тимчасовий fallback `npm install pnpm@10`) замість запуску `npm run build` усередині pnpm workspace. Збирає gateway і Control UI. `openclaw doctor` запускається як фінальна перевірка безпечного оновлення. Синхронізує plugins з активним каналом. Dev використовує bundled plugins; stable і beta використовують npm. Оновлює відстежувані встановлення plugin.На каналі оновлення beta відстежувані встановлення npm і ClawHub plugin, які дотримуються
типової/latest лінії, спочатку пробують випуск plugin @beta. Якщо plugin не має
beta-випуску, OpenClaw повертається до записаної специфікації default/latest. Точні
версії та явні теги не переписуються.
Коли оновлений Gateway запускається, завантаження plugin працює лише в режимі перевірки: запуск не запускає менеджери пакетів і не змінює дерева залежностей. Перезапуски update.run через менеджер пакетів обходять звичайне відкладення простою та restart cooldown після заміни дерева пакета, тому старий процес не може продовжувати lazy-loading видалених фрагментів.
Якщо bootstrap pnpm усе одно не вдається, оновлювач зупиняється рано з помилкою, специфічною для менеджера пакетів, замість спроби npm run build усередині checkout.
Скорочення --update
openclaw --update переписується на openclaw update (корисно для shell і скриптів запуску).
Пов’язане
openclaw doctor(пропонує спочатку запустити update на git checkout)- Канали розробки
- Оновлення
- Довідник CLI