docs/docs/uk/cli/update.md
2026-05-03 17:00:09 +00:00

14 KiB
Raw Blame History

read_when summary title x-i18n
Ви хочете безпечно оновити робочу копію вихідного коду
Вам потрібно зрозуміти скорочену поведінку `--update`
Довідник CLI для `openclaw update` (відносно безпечне оновлення джерела + автоматичний перезапуск Gateway) Оновлення
generated_at model provider source_hash source_path workflow
2026-05-03T16:59:31Z gpt-5.5 openai 767f3902877209f3945f50f7f8bd6ec7650a708685f1c4008d4191dc00eb1774 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: попередньо переглянути заплановані дії оновлення (канал/тег/ціль/потік перезапуску) без запису конфігурації, встановлення, синхронізації плагінів або перезапуску.
  • --json: вивести машинозчитуваний JSON UpdateRunResult, зокрема postUpdate.plugins.integrityDrifts, коли під час синхронізації плагінів після оновлення виявлено дрейф артефактів npm-плагінів.
  • --timeout <seconds>: тайм-аут для кожного кроку (типово 1800 с).
  • --yes: пропустити запити підтвердження (наприклад, підтвердження повернення до старішої версії).
Повернення до старішої версії потребує підтвердження, бо старіші версії можуть порушити конфігурацію.

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 відсутня або старіша за поточний stable-реліз.

Автооновлювач ядра Gateway (коли ввімкнений у конфігурації) запускає шлях оновлення CLI поза живим обробником запитів Gateway. Оновлення менеджера пакетів update.run у площині керування примусово виконують невідкладний перезапуск оновлення без періоду очікування після заміни пакета, бо старий процес Gateway може досі мати в пам’яті фрагменти, що посилаються на файли, видалені новим пакетом.

Для встановлень через менеджер пакетів openclaw update визначає цільову версію пакета перед викликом менеджера пакетів. Глобальні встановлення npm використовують поетапне встановлення: OpenClaw встановлює новий пакет у тимчасовий префікс npm, перевіряє там інвентар упакованого dist, а потім замінює цим чистим деревом пакета реальний глобальний префікс. Якщо перевірка не вдається, doctor після оновлення, синхронізація плагінів і перезапуск не запускаються з підозрілого дерева. Навіть коли встановлена версія вже відповідає цілі, команда оновлює глобальне встановлення пакета, а потім запускає синхронізацію плагінів, оновлення завершення основних команд і перезапуск. Це підтримує узгодженість упакованих sidecar-компонентів і записів плагінів, що належать каналу, із встановленою збіркою OpenClaw, залишаючи повну перебудову завершення команд плагінів для явних запусків openclaw completion --write-state.

Коли встановлено локальну керовану службу Gateway і ввімкнено перезапуск, оновлення через менеджер пакетів зупиняють запущену службу перед заміною дерева пакета, потім оновлюють метадані служби з оновленого встановлення, перезапускають службу й перевіряють, що перезапущений Gateway повідомляє очікувану версію перед повідомленням про успіх. На macOS перевірка після оновлення також перевіряє, що LaunchAgent завантажений/запущений для активного профілю, а налаштований порт loopback є справним. Якщо plist встановлено, але launchd не наглядає за ним, OpenClaw автоматично повторно bootstrap-ить і kickstart-ить LaunchAgent, а потім повторно запускає перевірки готовності health/версії/каналу. Якщо Gateway усе ще не стає справним, команда завершується з ненульовим кодом і виводить шлях до журналу перезапуску, а також явні інструкції щодо перезапуску, перевстановлення та відкату пакета. З --no-restart заміна пакета все одно виконується, але керована служба не зупиняється і не перезапускається, тому запущений Gateway може зберігати старий код, доки ви не перезапустите його вручну.

Потік git checkout

Вибір каналу

  • stable: checkout останнього небета-тега, потім build і doctor.
  • beta: віддати перевагу останньому тегу -beta, але повернутися до останнього stable-тега, коли beta відсутня або старіша.
  • dev: checkout main, потім fetch і rebase.

Кроки оновлення

Вимагає відсутності незакомічених змін. Перемикає на вибраний канал (тег або гілку). Лише для dev. Запускає lint і TypeScript build у тимчасовому worktree. Якщо tip не проходить, повертається назад до 10 комітів, щоб знайти найновіший чистий build. Виконує rebase на вибраний коміт (лише dev). Використовує менеджер пакетів репозиторію. Для pnpm checkout оновлювач bootstrap-ить `pnpm` на вимогу (спочатку через `corepack`, потім через запасний тимчасовий `npm install pnpm@10`) замість запуску `npm run build` усередині pnpm workspace. Збирає gateway і Control UI. `openclaw doctor` запускається як фінальна перевірка безпечного оновлення. Синхронізує плагіни з активним каналом. Dev використовує bundled плагіни; stable і beta використовують npm. Оновлює відстежувані встановлення плагінів.

На каналі оновлення beta відстежувані npm і ClawHub встановлення плагінів, що слідують типовій/latest лінії, спершу пробують реліз плагіна @beta. Якщо плагін не має beta-релізу, OpenClaw повертається до записаної типової/latest специфікації. Точні версії та явні теги не переписуються.

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

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

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

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

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

Пов’язане