Maintenance
Aktualizowanie
Dbaj o aktualność OpenClaw.
Informacje o zastępowaniu obrazów Docker, Podman i Kubernetes znajdziesz w sekcji Uaktualnianie obrazów kontenerów. Gateway przed osiągnięciem gotowości wykonuje bezpieczne podczas uruchamiania czynności aktualizacyjne i kończy działanie, jeśli zamontowany stan wymaga ręcznej naprawy.
Zalecane: openclaw update
Wykrywa typ instalacji (npm lub git), pobiera najnowszą wersję, uruchamia openclaw doctor i ponownie uruchamia Gateway.
openclaw updateZmień kanał lub wskaż konkretną wersję:
openclaw update --channel betaopenclaw update --channel extended-stableopenclaw update --channel devopenclaw update --dry-run # podgląd bez wprowadzania zmianopenclaw update nie ma flagi --verbose (instalator ją ma). Do diagnostyki użyj
--dry-run, aby wyświetlić podgląd planowanych działań, --json, aby uzyskać wyniki strukturalne, lub
openclaw update status --json, aby sprawdzić stan kanału i dostępności.
--channel beta preferuje znacznik dystrybucyjny npm beta, ale przechodzi na stable/latest,
gdy brakuje znacznika beta lub jego wersja jest starsza niż najnowsze stabilne
wydanie. Zamiast tego użyj --tag beta, aby wykonać jednorazową aktualizację pakietu
przypiętą do bezpośredniego znacznika dystrybucyjnego npm beta.
--channel extended-stable obsługuje wyłącznie pakiety, a instalacja jest wykonywana
tylko na pierwszym planie. OpenClaw odczytuje publiczny selektor npm extended-stable,
weryfikuje dokładnie wybrany pakiet i instaluje tę konkretną wersję. Brakujące
lub niespójne dane rejestru powodują bezpieczne przerwanie operacji; nigdy nie następuje przejście na latest.
Jeśli wybrana wersja jest starsza niż zainstalowana, nadal obowiązuje standardowe
potwierdzenie obniżenia wersji. CLI zachowuje kanał po pomyślnej
aktualizacji rdzenia; bezpośrednie polecenie npm install -g openclaw@extended-stable
nie aktualizuje update.channel.
Po wymianie rdzenia kwalifikujące się oficjalne Pluginy npm z intencją pustą/domyślną lub
latest przechodzą na dokładnie tę samą wersję co rdzeń. Dokładnie przypięte wersje i jawne
znaczniki inne niż latest, Pluginy innych firm oraz źródła inne niż npm pozostają bez zmian.
Instalacje z katalogu utworzone przez bieżące wersje OpenClaw zachowują tę domyślną
intencję. Starsze rekordy zawierające wyłącznie dokładną wersję pozostają przypięte, ponieważ
OpenClaw nie może bezpiecznie odróżnić starego automatycznego przypięcia od przypięcia użytkownika; uruchom
jednorazowo openclaw plugins update @openclaw/name na kanale extended-stable,
aby ponownie włączyć dla tego Pluginu śledzenie dokładnej wersji rdzenia.
--channel dev zapewnia trwałą, podążającą za zmianami kopię roboczą gałęzi GitHub main. W przypadku jednorazowej
aktualizacji pakietu --tag main jest mapowane na specyfikację pakietu
github:openclaw/openclaw#main i instaluje go bezpośrednio przez docelowego menedżera pakietów (npm/pnpm/bun).
W przypadku zarządzanych Pluginów brak wydania beta jest ostrzeżeniem, a nie błędem: aktualizacja rdzenia może się powieść, a Plugin powróci do swojego zapisanego domyślnego/najnowszego wydania.
Semantykę kanałów opisano w sekcji Kanały wydań.
Przełączanie między instalacjami npm i git
Użyj kanałów, aby zmienić typ instalacji. Aktualizator zachowuje stan, konfigurację,
dane uwierzytelniające i przestrzeń roboczą w ~/.openclaw; zmienia tylko instalację kodu OpenClaw,
z której korzystają CLI i Gateway.
# instalacja pakietu npm -> edytowalna kopia robocza gitopenclaw update --channel dev # kopia robocza git -> instalacja pakietu npmopenclaw update --channel stableNajpierw wyświetl podgląd zmiany trybu instalacji:
openclaw update --channel dev --dry-runopenclaw update --channel stable --dry-runKanał dev zapewnia kopię roboczą git, kompiluje ją i instaluje globalne CLI z tej
kopii. Kanały stable, extended-stable i beta używają instalacji
pakietów. Kanał extended-stable jest odrzucany w kopii roboczej git bez jej modyfikowania
ani konwertowania. Jeśli Gateway jest już zainstalowany, openclaw update odświeża
metadane usługi i uruchamia ją ponownie, chyba że przekażesz --no-restart.
W przypadku instalacji pakietowych z zarządzaną usługą Gateway polecenie openclaw update wskazuje
katalog główny pakietu używany przez tę usługę. Jeśli polecenie powłoki openclaw pochodzi
z innej instalacji, aktualizator wyświetla oba katalogi główne oraz ścieżkę Node
zarządzanej usługi, a przed zastąpieniem pakietu sprawdza zgodność tej wersji Node
z wymaganiem engines.node docelowego wydania.
Alternatywa: ponowne uruchomienie instalatora
curl -fsSL https://openclaw.ai/install.sh | bashDodaj --no-onboard, aby pominąć wdrażanie. Aby wymusić określony typ instalacji, przekaż
--install-method git --no-onboard lub --install-method npm --no-onboard.
Jeśli openclaw update nie powiedzie się po etapie instalacji pakietu npm, uruchom ponownie
instalator. Nie wywołuje on aktualizatora; wykonuje bezpośrednio globalną instalację
pakietu i może naprawić częściowo zaktualizowaną instalację npm.
curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method npmPrzypnij odzyskiwanie do określonej wersji lub znacznika dystrybucyjnego za pomocą --version:
curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method npm --version <version-or-dist-tag>Alternatywa: ręcznie przez npm, pnpm lub bun
npm i -g openclaw@latestW przypadku instalacji nadzorowanych preferuj openclaw update: może ono skoordynować wymianę
pakietu z działającą usługą Gateway. Jeśli aktualizujesz instalację nadzorowaną ręcznie,
najpierw zatrzymaj zarządzany Gateway. Menedżery pakietów zastępują pliki
w miejscu, przez co działający Gateway może w trakcie wymiany próbować wczytać pliki rdzenia lub Pluginów.
Po zakończeniu pracy menedżera pakietów uruchom Gateway ponownie, aby zaczął korzystać
z nowej instalacji.
W przypadku należącej do użytkownika root, globalnej instalacji systemowej w systemie Linux, jeśli openclaw update zakończy się
błędem EACCES, przeprowadź odzyskiwanie za pomocą systemowego npm, utrzymując Gateway zatrzymany podczas
ręcznej wymiany. Użyj tych samych flag profilu/zmiennych środowiskowych, których zwykle używasz dla
tego Gateway. Zastąp /usr/bin/npm systemowym npm zarządzającym
należącym do użytkownika root globalnym prefiksem na Twoim hoście:
openclaw gateway stopsudo /usr/bin/npm i -g openclaw@latestopenclaw gateway install --forceopenclaw gateway restartNastępnie zweryfikuj:
openclaw --versioncurl -fsS http://127.0.0.1:18789/readyzopenclaw plugins list --jsonopenclaw gateway status --deep --jsonopenclaw doctor --lint --jsonGdy openclaw update zarządza globalną instalacją npm, najpierw instaluje wersję docelową
w tymczasowym prefiksie npm, weryfikuje spis spakowanego katalogu dist, a następnie
podmienia czyste drzewo pakietu w rzeczywistym globalnym prefiksie — zapobiegając
nakładaniu przez npm nowego pakietu na nieaktualne pliki ze starego. Jeśli polecenie
instalacji nie powiedzie się, OpenClaw ponawia je raz z opcją --omit=optional, co pomaga na hostach,
na których nie można skompilować natywnych opcjonalnych zależności.
Zarządzane przez OpenClaw polecenia aktualizacji npm i aktualizacji Pluginów wyłączają również
kwarantannę łańcucha dostaw min-release-age npm (lub starszy klucz konfiguracji before)
dla podrzędnego procesu npm. Ta zasada zapewnia ogólną ochronę, ale jawna
aktualizacja OpenClaw oznacza „zainstaluj teraz wybrane wydanie”.
pnpm add -g openclaw@latestbun add -g openclaw@latestZaawansowane zagadnienia instalacji npm
Drzewo pakietów tylko do odczytu
OpenClaw traktuje spakowane instalacje globalne jako przeznaczone tylko do odczytu w czasie działania, nawet gdy bieżący użytkownik może zapisywać w globalnym katalogu pakietów. Instalacje pakietów Pluginów znajdują się w należących do OpenClaw katalogach głównych npm/git w katalogu konfiguracji użytkownika, a uruchomienie Gateway nie modyfikuje drzewa pakietu OpenClaw.
Niektóre konfiguracje npm w systemie Linux instalują pakiety globalne w katalogach należących do użytkownika root, takich jak /usr/lib/node_modules/openclaw. OpenClaw obsługuje taki układ, ponieważ polecenia instalowania i aktualizowania Pluginów zapisują dane poza tym globalnym katalogiem pakietów.
Wzmocnione jednostki systemd
Przyznaj OpenClaw prawo zapisu w jego katalogach głównych konfiguracji i stanu, aby jawne instalacje Pluginów, aktualizacje Pluginów i czyszczenie wykonywane przez doctor mogły trwale zapisywać zmiany:
ReadWritePaths=/var/lib/openclaw /home/openclaw/.openclaw /tmpWstępne sprawdzanie miejsca na dysku
Przed aktualizacjami pakietów i jawnymi instalacjami Pluginów OpenClaw próbuje w miarę możliwości sprawdzić ilość wolnego miejsca na woluminie docelowym. Mała ilość miejsca powoduje wyświetlenie ostrzeżenia ze sprawdzoną ścieżką, ale nie blokuje aktualizacji, ponieważ przydziały systemu plików, migawki i woluminy sieciowe mogą ulec zmianie po sprawdzeniu. Rozstrzygające pozostają właściwa instalacja wykonywana przez menedżera pakietów i weryfikacja poinstalacyjna.
Automatyczny aktualizator
Domyślnie wyłączony. Włącz go w ~/.openclaw/openclaw.json:
{ update: { channel: "stable", auto: { enabled: true, stableDelayHours: 6, stableJitterHours: 12, betaCheckIntervalHours: 1, }, },}| Kanał | Działanie |
|---|---|
stable |
Czeka przez stableDelayHours (domyślnie: 6), a następnie stosuje aktualizację z deterministycznym rozrzutem w okresie stableJitterHours (domyślnie: 12), aby rozłożyć wdrożenie w czasie. |
extended-stable |
Sprawdza podczas uruchamiania i co 24 godziny wskazówkę o aktualizacji tylko do odczytu, gdy włączono checkOnStart. Nigdy nie stosuje aktualizacji automatycznie. |
beta |
Sprawdza co betaCheckIntervalHours (domyślnie: 1) i natychmiast stosuje aktualizację. |
dev |
Nie stosuje aktualizacji automatycznie. Użyj ręcznie openclaw update. |
Gateway zapisuje również w dzienniku wskazówkę dotyczącą aktualizacji podczas uruchamiania (wyłącz ją za pomocą
update.checkOnStart: false). Zapisane wybory extended-stable korzystają z tej
ścieżki wskazówek tylko do odczytu i istniejącego 24-godzinnego interwału, ale nigdy nie uruchamiają
automatycznej instalacji, przekazania sterowania, ponownego uruchomienia, opóźnienia/rozrzutu kanału stable ani odpytywania kanału beta.
Aby obniżyć wersję lub odzyskać system po incydencie, ustaw OPENCLAW_NO_AUTO_UPDATE=1 w środowisku Gateway, by blokować automatyczne stosowanie aktualizacji, nawet gdy skonfigurowano update.auto.enabled. Wskazówki dotyczące aktualizacji podczas uruchamiania mogą nadal działać, chyba że wyłączono również update.checkOnStart.
Aktualizacje menedżera pakietów żądane przez płaszczyznę sterowania działającego Gateway
(update.run) nie zastępują drzewa pakietów wewnątrz działającego procesu Gateway.
W instalacjach z usługą zarządzaną Gateway uruchamia odłączony proces przekazania,
kończy działanie i pozwala standardowej ścieżce CLI openclaw update --yes --json zatrzymać
usługę, zastąpić pakiet, odświeżyć metadane usługi, uruchomić ją ponownie, zweryfikować
wersję i osiągalność Gateway oraz, jeśli to możliwe, naprawić zainstalowany, lecz niewczytany
LaunchAgent systemu macOS. Jeśli Gateway nie może bezpiecznie wykonać tego przekazania,
update.run zgłasza bezpieczne polecenie powłoki zamiast uruchamiać menedżera
pakietów wewnątrz procesu.
Karta aktualizacji na pasku bocznym Control UI uruchamia ten sam przepływ update.run. W
podpisanej aplikacji macOS karta najpierw aktualizuje aplikację za pomocą Sparkle; po ponownym uruchomieniu
aplikacja doprowadza zarządzany lokalny Gateway do zgodnej wersji.
Po aktualizacji
Uruchom doctor
openclaw doctorMigruje konfigurację, kontroluje zasady wiadomości prywatnych i sprawdza stan Gateway. Szczegóły: Doctor
Uruchom ponownie Gateway
openclaw gateway restartZweryfikuj
openclaw healthWycofywanie wersji
Przypnij wersję (npm)
npm i -g openclaw@<version>openclaw doctoropenclaw gateway restartPrzypnij commit (kod źródłowy)
git fetch origingit checkout "$(git rev-list -n 1 --before=\"2026-01-01\" origin/main)"pnpm install && pnpm buildopenclaw gateway restartAby wrócić do najnowszej wersji: git checkout main && git pull.
Jeśli utkniesz
- Ponownie uruchom
openclaw doctori uważnie przeczytaj dane wyjściowe. - W przypadku
openclaw update --channel devw kopiach roboczych kodu źródłowego aktualizator w razie potrzeby automatycznie przygotowujepnpm. Jeśli zobaczysz błąd przygotowania pnpm/corepack, zainstalujpnpmręcznie (lub ponownie włączcorepack) i ponów aktualizację. - Sprawdź: Rozwiązywanie problemów
- Zapytaj na Discordzie: https://discord.gg/clawd
Powiązane
- Przegląd instalacji: wszystkie metody instalacji.
- Diagnostyka: kontrole stanu po aktualizacjach.
- Migracja: przewodniki po migracji między głównymi wersjami.