Maintenance

Обновление

Поддерживайте OpenClaw в актуальном состоянии.

О замене образов Docker, Podman и Kubernetes см. Обновление образов контейнеров. Перед переходом в состояние готовности Gateway выполняет безопасные при запуске операции обновления и завершает работу, если подключённое состояние требует ручного восстановления.

Рекомендуется: openclaw update

Определяет тип установки (npm или git), получает последнюю версию, выполняет openclaw doctor и перезапускает Gateway.

bash
openclaw update

Переключение каналов или выбор конкретной версии:

bash
openclaw update --channel betaopenclaw update --channel extended-stableopenclaw update --channel devopenclaw update --dry-run   # предварительный просмотр без применения

У openclaw update нет флага --verbose (он есть у установщика). Для диагностики используйте --dry-run, чтобы предварительно просмотреть запланированные действия, --json для структурированных результатов или openclaw update status --json, чтобы проверить состояние канала и доступности.

--channel beta предпочитает npm dist-тег beta, но возвращается к stable/latest, если тег beta отсутствует или его версия старше последнего стабильного выпуска. Вместо этого используйте --tag beta для однократного обновления пакета с привязкой непосредственно к npm dist-тегу beta.

--channel extended-stable работает только с пакетами, а установка по-прежнему выполняется только в интерактивном режиме. OpenClaw считывает общедоступный селектор npm extended-stable, проверяет точно выбранный пакет и устанавливает именно эту версию. При отсутствии или несогласованности данных реестра операция безопасно завершается ошибкой; возврата к latest не происходит. Если выбранная версия старше установленной, по-прежнему применяется обычное подтверждение понижения версии. После успешного обновления ядра CLI сохраняет канал; прямой вызов npm install -g openclaw@extended-stable не обновляет update.channel. После замены ядра подходящие официальные npm-плагины с намерением bare/default или latest приводятся к точно такой же версии ядра. Точные привязки и явные теги, отличные от latest, сторонние плагины и источники не из npm остаются без изменений. Установки из каталога, созданные текущими версиями OpenClaw, сохраняют это намерение по умолчанию. Более старые записи, содержащие только точную версию, остаются закреплёнными, поскольку OpenClaw не может безопасно отличить старую автоматическую привязку от пользовательской; один раз выполните openclaw plugins update @openclaw/name на канале extended-stable, чтобы снова включить для этого плагина отслеживание точной версии ядра.

--channel dev предоставляет постоянную обновляемую рабочую копию GitHub main. Для однократного обновления пакета --tag main сопоставляется со спецификацией пакета github:openclaw/openclaw#main и устанавливается напрямую через целевой менеджер пакетов (npm/pnpm/bun).

Для управляемых плагинов отсутствие бета-выпуска является предупреждением, а не ошибкой: обновление ядра всё равно может завершиться успешно, а плагин вернётся к записанному выпуску default/latest.

Семантика каналов описана в разделе Каналы выпусков.

Переключение между установками npm и git

Используйте каналы для изменения типа установки. Средство обновления сохраняет состояние, конфигурацию, учётные данные и рабочую область в ~/.openclaw; изменяется только установка кода OpenClaw, которую используют CLI и Gateway.

bash
# установка пакета npm -> редактируемая рабочая копия gitopenclaw update --channel dev # рабочая копия git -> установка пакета npmopenclaw update --channel stable

Сначала предварительно просмотрите переключение режима установки:

bash
openclaw update --channel dev --dry-runopenclaw update --channel stable --dry-run

dev обеспечивает наличие рабочей копии git, собирает её и устанавливает из неё глобальный CLI. Каналы stable, extended-stable и beta используют установки пакетов. Канал extended-stable отклоняется для рабочей копии git без её изменения или преобразования. Если Gateway уже установлен, openclaw update обновляет метаданные службы и перезапускает её, если не передан --no-restart.

Для установок пакетов с управляемой службой Gateway команда openclaw update нацелена на корень пакета, используемый этой службой. Если команда оболочки openclaw относится к другой установке, средство обновления выводит оба корня и путь Node управляемой службы, а перед заменой пакета проверяет соответствие этой версии Node требованию engines.node целевого выпуска.

Альтернатива: повторный запуск установщика

bash
curl -fsSL https://openclaw.ai/install.sh | bash

Добавьте --no-onboard, чтобы пропустить первоначальную настройку. Чтобы принудительно выбрать конкретный тип установки, передайте --install-method git --no-onboard или --install-method npm --no-onboard.

Если openclaw update завершается ошибкой после этапа установки пакета npm, повторно запустите установщик. Он не вызывает средство обновления, а напрямую выполняет глобальную установку пакета и может восстановить частично обновлённую установку npm.

bash
curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method npm

Закрепите восстановление на конкретной версии или dist-теге с помощью --version:

bash
curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method npm --version <version-or-dist-tag>

Альтернатива: ручное обновление через npm, pnpm или bun

bash
npm i -g openclaw@latest

Для контролируемых установок предпочитайте openclaw update: эта команда может согласовать замену пакета с работающей службой Gateway. При ручном обновлении контролируемой установки сначала остановите управляемый Gateway. Менеджеры пакетов заменяют файлы на месте, и в противном случае работающий Gateway может попытаться загрузить файлы ядра или плагина в процессе замены. После завершения работы менеджера пакетов перезапустите Gateway, чтобы он использовал новую установку.

Если в общесистемной установке Linux с глобальным каталогом, принадлежащим root, команда openclaw update завершается ошибкой EACCES, выполните восстановление с помощью системного npm, не запуская Gateway во время ручной замены. Используйте те же флаги профиля и переменные окружения, которые обычно применяются для этого Gateway. Замените /usr/bin/npm системным npm, которому принадлежит глобальный префикс root на вашем хосте:

bash
openclaw gateway stopsudo /usr/bin/npm i -g openclaw@latestopenclaw gateway install --forceopenclaw gateway restart

Затем выполните проверку:

bash
openclaw --versioncurl -fsS http://127.0.0.1:18789/readyzopenclaw plugins list --jsonopenclaw gateway status --deep --jsonopenclaw doctor --lint --json

Когда openclaw update управляет глобальной установкой npm, целевая версия сначала устанавливается во временный префикс npm, затем проверяется состав упакованных файлов dist, после чего чистое дерево пакета заменяет дерево в реальном глобальном префиксе. Это предотвращает наложение нового пакета npm на устаревшие файлы старого пакета. Если команда установки завершается ошибкой, OpenClaw повторяет попытку один раз с --omit=optional, что помогает на хостах, где невозможно скомпилировать необязательные нативные зависимости.

Управляемые OpenClaw команды обновления npm и плагинов также отключают для дочернего процесса npm карантин цепочки поставок min-release-age (или более старый ключ конфигурации before). Эта политика предназначена для общей защиты, но явное обновление OpenClaw означает «установить выбранный выпуск сейчас».

bash
pnpm add -g openclaw@latest
bash
bun add -g openclaw@latest

Расширенные темы установки npm

Дерево пакетов только для чтения

OpenClaw считает упакованные глобальные установки доступными во время выполнения только для чтения, даже если текущий пользователь может записывать данные в глобальный каталог пакетов. Пакеты плагинов устанавливаются в принадлежащие OpenClaw корни npm/git в каталоге пользовательской конфигурации, а запуск Gateway не изменяет дерево пакетов OpenClaw.

В некоторых конфигурациях npm в Linux глобальные пакеты устанавливаются в принадлежащие root каталоги, например /usr/lib/node_modules/openclaw. OpenClaw поддерживает такую структуру, поскольку команды установки и обновления плагинов записывают данные вне этого глобального каталога пакетов.

Усиленные модули systemd

Предоставьте OpenClaw доступ на запись к корням конфигурации и состояния, чтобы явные установки плагинов, обновления плагинов и очистка doctor могли сохранять изменения:

ini
ReadWritePaths=/var/lib/openclaw /home/openclaw/.openclaw /tmp
Предварительная проверка свободного места

Перед обновлением пакетов и явной установкой плагинов OpenClaw по возможности проверяет свободное место на целевом томе. При нехватке места выводится предупреждение с проверенным путём, но обновление не блокируется, поскольку квоты файловой системы, снимки и сетевые тома могут измениться после проверки. Определяющими остаются фактическая установка менеджером пакетов и проверка после установки.

Автоматическое обновление

По умолчанию отключено. Включите его в ~/.openclaw/openclaw.json:

json5
{  update: {    channel: "stable",    auto: {      enabled: true,      stableDelayHours: 6,      stableJitterHours: 12,      betaCheckIntervalHours: 1,    },  },}
Канал Поведение
stable Ожидает stableDelayHours (по умолчанию: 6), затем применяет обновление с детерминированным случайным сдвигом в пределах stableJitterHours (по умолчанию: 12) для распределённого развёртывания.
extended-stable Проверяет наличие информационного уведомления об обновлении при запуске и каждые 24 часа, когда включён checkOnStart. Никогда не применяет обновление автоматически.
beta Выполняет проверку каждые betaCheckIntervalHours (по умолчанию: 1) и немедленно применяет обновление.
dev Автоматическое применение отсутствует. Используйте openclaw update вручную.

Gateway также записывает в журнал уведомление об обновлении при запуске (отключается с помощью update.checkOnStart: false). Сохранённые варианты extended-stable используют этот путь информационных уведомлений и существующий 24-часовой интервал уведомлений, но никогда не запускают автоматическую установку, передачу управления, перезапуск, задержку или случайный сдвиг stable либо опрос beta. Для понижения версии или восстановления после сбоя задайте OPENCLAW_NO_AUTO_UPDATE=1 в окружении Gateway, чтобы блокировать автоматическое применение обновлений, даже если настроен update.auto.enabled. Уведомления об обновлениях при запуске по-прежнему могут выполняться, если также не отключён update.checkOnStart.

Обновления менеджера пакетов, запрошенные через активную плоскость управления Gateway (update.run), не заменяют дерево пакета внутри работающего процесса Gateway. В установках с управляемой службой Gateway запускает отделённую передачу управления, завершает работу и позволяет обычному пути CLI openclaw update --yes --json остановить службу, заменить пакет, обновить метаданные службы, перезапустить её, проверить версию и доступность Gateway и по возможности восстановить установленный, но не загруженный LaunchAgent macOS. Если Gateway не может безопасно выполнить такую передачу управления, update.run сообщает безопасную команду оболочки вместо запуска менеджера пакетов внутри процесса.

Карточка обновления на боковой панели Control UI запускает тот же процесс update.run. В подписанном приложении macOS карточка сначала обновляет приложение через Sparkle; после повторного запуска приложение приводит управляемый локальный Gateway к соответствующей версии.

После обновления

Запустите doctor

bash
openclaw doctor

Переносит конфигурацию, проверяет политики личных сообщений и состояние Gateway. Подробнее: Doctor

Перезапустите Gateway

bash
openclaw gateway restart

Проверьте работу

bash
openclaw health

Откат

Закрепление версии (npm)

bash
npm i -g openclaw@<version>openclaw doctoropenclaw gateway restart

Закрепление коммита (исходный код)

bash
git fetch origingit checkout "$(git rev-list -n 1 --before=\"2026-01-01\" origin/main)"pnpm install && pnpm buildopenclaw gateway restart

Чтобы вернуться к последней версии: git checkout main && git pull.

Если у вас возникли трудности

  • Снова запустите openclaw doctor и внимательно прочитайте вывод.
  • Для openclaw update --channel dev в рабочих копиях исходного кода средство обновления при необходимости автоматически подготавливает pnpm. Если возникает ошибка подготовки pnpm/corepack, установите pnpm вручную (или снова включите corepack) и повторно запустите обновление.
  • См.: Устранение неполадок
  • Задайте вопрос в Discord: https://discord.gg/clawd

Связанные материалы

Was this useful?
On this page

On this page