docs/docs/uk/cli/update.md
2026-05-03 20:27:03 +00:00

15 KiB
Raw Blame History

read_when summary title x-i18n
Ви хочете безпечно оновити робочу копію вихідного коду
Ви налагоджуєте вивід або параметри `openclaw update`
Потрібно розуміти поведінку скороченого запису `--update`
Довідник CLI для `openclaw update` (відносно безпечне оновлення джерела + автоматичний перезапуск Gateway) Оновити
generated_at model provider source_hash source_path workflow
2026-05-03T20:26:26Z gpt-5.5 openai 66bae6ee2b01c667aaf47dfb17fe8a2a5e39e884f157fead242d2f9d4040f817 cli/update.md 16

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: вивести машинно-читаний JSON UpdateRunResult, включно з 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-tag beta, але повертається до 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: checkout main, потім 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. Точні версії та явні теги не переписуються.

Якщо оновлення npm plugin із точно зафіксованою версією визначає артефакт, цілісність якого відрізняється від збереженого запису встановлення, `openclaw update` перериває це оновлення артефакту plugin замість його встановлення. Перевстановіть або оновіть plugin явно лише після перевірки, що ви довіряєте новому артефакту. Помилки синхронізації plugin після оновлення призводять до невдалого результату оновлення та зупиняють подальші дії перезапуску. Виправте помилку встановлення або оновлення plugin, а потім повторно запустіть `openclaw update`.

Коли оновлений Gateway запускається, завантаження plugin працює лише в режимі перевірки: запуск не запускає менеджери пакетів і не змінює дерева залежностей. Перезапуски update.run через менеджер пакетів обходять звичайне відкладення простою та restart cooldown після заміни дерева пакета, тому старий процес не може продовжувати lazy-loading видалених фрагментів.

Якщо bootstrap pnpm усе одно не вдається, оновлювач зупиняється рано з помилкою, специфічною для менеджера пакетів, замість спроби npm run build усередині checkout.

Скорочення --update

openclaw --update переписується на openclaw update (корисно для shell і скриптів запуску).

Пов’язане