Maintenance

Aktualizacja

Utrzymuj OpenClaw w aktualnej wersji.

Zalecane: openclaw update

Najszybszy sposób aktualizacji. Wykrywa typ instalacji (npm lub git), pobiera najnowszą wersję, uruchamia openclaw doctor i restartuje Gateway.

openclaw update

Aby przełączyć kanały lub wskazać konkretną wersję:

openclaw update --channel beta
openclaw update --channel dev
openclaw update --tag main
openclaw update --dry-run   # preview without applying

openclaw update nie akceptuje --verbose. Do diagnostyki aktualizacji użyj --dry-run, aby podejrzeć planowane działania, --json dla wyników strukturalnych, albo openclaw update status --json, aby sprawdzić stan kanału i dostępności. Instalator ma własną flagę --verbose, ale ta flaga nie jest częścią openclaw update.

--channel beta preferuje beta, ale środowisko wykonawcze wraca do stable/latest, gdy brakuje tagu beta albo jest on starszy niż najnowsze wydanie stabilne. Użyj --tag beta, jeśli chcesz surowy npm beta dist-tag do jednorazowej aktualizacji pakietu.

Zobacz Kanały deweloperskie, aby poznać semantykę kanałów.

Przełączanie między instalacjami npm i git

Używaj kanałów, gdy chcesz zmienić typ instalacji. Aktualizator zachowuje Twój stan, konfigurację, dane uwierzytelniające i przestrzeń roboczą w ~/.openclaw; zmienia tylko to, której instalacji kodu OpenClaw używają CLI i Gateway.

# npm package install -> editable git checkout
openclaw update --channel dev

# git checkout -> npm package install
openclaw update --channel stable

Najpierw uruchom z --dry-run, aby podejrzeć dokładne przełączenie trybu instalacji:

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

Kanał dev zapewnia checkout git, buduje go i instaluje globalne CLI z tego checkoutu. Kanały stable i beta używają instalacji pakietowych. Jeśli Gateway jest już zainstalowany, openclaw update odświeża metadane usługi i restartuje ją, chyba że przekażesz --no-restart.

Alternatywa: ponowne uruchomienie instalatora

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

Dodaj --no-onboard, aby pominąć onboarding. Aby wymusić konkretny typ instalacji przez instalator, przekaż --install-method git --no-onboard lub --install-method npm --no-onboard.

Jeśli openclaw update nie powiedzie się po fazie instalacji pakietu npm, uruchom ponownie instalator. Instalator nie wywołuje starego aktualizatora; uruchamia bezpośrednio globalną instalację pakietu i może odzyskać częściowo zaktualizowaną instalację npm.

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

Aby przypiąć odzyskiwanie do konkretnej wersji lub dist-tag, dodaj --version:

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

Alternatywa: ręczne npm, pnpm lub bun

npm i -g openclaw@latest

Preferuj openclaw update dla instalacji nadzorowanych, ponieważ może skoordynować podmianę pakietu z działającą usługą Gateway. Jeśli aktualizujesz ręcznie, gdy zarządzany Gateway działa, zrestartuj Gateway natychmiast po zakończeniu działania menedżera pakietów, aby stary proces nie kontynuował obsługi z zastąpionych plików pakietu.

Gdy openclaw update zarządza globalną instalacją npm, najpierw instaluje cel w tymczasowym prefiksie npm, weryfikuje spakowany inwentarz dist, a następnie podmienia czyste drzewo pakietu do rzeczywistego prefiksu globalnego. Dzięki temu npm nie nakłada nowego pakietu na przestarzałe pliki ze starego pakietu. Jeśli polecenie instalacji się nie powiedzie, OpenClaw ponawia próbę raz z --omit=optional. Ta ponowna próba pomaga hostom, na których natywne opcjonalne zależności nie mogą się skompilować, jednocześnie zachowując widoczność pierwotnego błędu, jeśli ścieżka awaryjna również się nie powiedzie.

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

Zaawansowane tematy instalacji npm

Drzewo pakietu tylko do odczytu

OpenClaw traktuje spakowane instalacje globalne jako tylko do odczytu w czasie działania, nawet gdy globalny katalog pakietu jest zapisywalny przez bieżącego użytkownika. Instalacje pakietów Plugin znajdują się w korzeniach npm/git należących do OpenClaw pod katalogiem konfiguracji użytkownika, a uruchomienie Gateway nie modyfikuje drzewa pakietu OpenClaw.

Niektóre konfiguracje npm w Linux instalują pakiety globalne w katalogach należących do roota, takich jak /usr/lib/node_modules/openclaw. OpenClaw obsługuje taki układ, ponieważ polecenia instalacji/aktualizacji Plugin zapisują poza tym globalnym katalogiem pakietu.

Wzmocnione jednostki systemd

Przyznaj OpenClaw dostęp zapisu do jego korzeni konfiguracji/stanu, aby jawne instalacje Plugin, aktualizacje Plugin i czyszczenie doctor mogły utrwalić swoje zmiany:

ReadWritePaths=/var/lib/openclaw /home/openclaw/.openclaw /tmp
Wstępne sprawdzanie miejsca na dysku

Przed aktualizacjami pakietów i jawnymi instalacjami Plugin OpenClaw próbuje wykonać best-effort sprawdzenie miejsca na dysku dla woluminu docelowego. Mała ilość miejsca generuje ostrzeżenie ze sprawdzoną ścieżką, ale nie blokuje aktualizacji, ponieważ limity systemu plików, migawki i woluminy sieciowe mogą zmienić się po sprawdzeniu. Rzeczywista instalacja menedżera pakietów i weryfikacja poinstalacyjna pozostają autorytatywne.

Automatyczny aktualizator

Automatyczny aktualizator jest domyślnie wyłączony. Włącz go w ~/.openclaw/openclaw.json:

{
  update: {
    channel: "stable",
    auto: {
      enabled: true,
      stableDelayHours: 6,
      stableJitterHours: 12,
      betaCheckIntervalHours: 1,
    },
  },
}
Kanał Zachowanie
stable Czeka stableDelayHours, a następnie stosuje z deterministycznym jitterem w zakresie stableJitterHours (rozłożone wdrożenie).
beta Sprawdza co betaCheckIntervalHours (domyślnie: co godzinę) i stosuje natychmiast.
dev Brak automatycznego zastosowania. Użyj ręcznie openclaw update.

Gateway zapisuje też w logach wskazówkę aktualizacji przy starcie (wyłącz przez update.checkOnStart: false). W celu obniżenia wersji lub odzyskiwania po incydencie ustaw OPENCLAW_NO_AUTO_UPDATE=1 w środowisku Gateway, aby zablokować automatyczne zastosowania nawet wtedy, gdy skonfigurowano update.auto.enabled. Wskazówki aktualizacji przy starcie mogą nadal działać, chyba że wyłączono także update.checkOnStart.

Aktualizacje menedżera pakietów żądane przez aktywny handler płaszczyzny kontrolnej Gateway wymuszają nieodroczony restart aktualizacji bez okresu cooldown po podmianie pakietu. To pozwala uniknąć pozostawienia starego procesu w pamięci na tyle długo, by leniwie ładował fragmenty z drzewa pakietu, które zostało już zastąpione. Powłokowe openclaw update pozostaje preferowaną ścieżką dla instalacji nadzorowanych, ponieważ może zatrzymać i zrestartować usługę wokół aktualizacji.

Po aktualizacji

Uruchom doctor

openclaw doctor

Migruje konfigurację, audytuje zasady DM i sprawdza kondycję Gateway. Szczegóły: Doctor

Zrestartuj Gateway

openclaw gateway restart

Zweryfikuj

openclaw health

Wycofanie

Przypięcie wersji (npm)

npm i -g openclaw@<version>
openclaw doctor
openclaw gateway restart

Przypięcie commita (źródło)

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

Aby wrócić do najnowszej wersji: git checkout main && git pull.

Jeśli utkniesz

  • Uruchom ponownie openclaw doctor i uważnie przeczytaj wynik.
  • W przypadku openclaw update --channel dev na checkoutach źródłowych aktualizator automatycznie bootstrapuje pnpm, gdy jest to potrzebne. Jeśli zobaczysz błąd bootstrapu pnpm/corepack, zainstaluj pnpm ręcznie (lub ponownie włącz corepack) i uruchom aktualizację ponownie.
  • Sprawdź: Rozwiązywanie problemów
  • Zapytaj na Discord: https://discord.gg/clawd

Powiązane