Maintenance

در حال به‌روزرسانی

OpenClaw را به‌روز نگه دارید.

برای جایگزینی ایمیج‌های Docker، Podman و Kubernetes، به ارتقای ایمیج‌های کانتینر مراجعه کنید. Gateway پیش از آماده‌شدن، عملیات ارتقای ایمن برای راه‌اندازی را اجرا می‌کند و اگر وضعیت mount‌شده به ترمیم دستی نیاز داشته باشد، خارج می‌شود.

توصیه‌شده: openclaw update

نوع نصب شما (npm، pnpm، Bun یا 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، dist-tag بتای npm را ترجیح می‌دهد، اما وقتی تگ بتا وجود نداشته باشد یا نسخه آن از جدیدترین انتشار پایدار قدیمی‌تر باشد، به stable/latest برمی‌گردد. در عوض، برای یک به‌روزرسانی یک‌باره بسته که مستقیماً به dist-tag خام بتای npm سنجاق شده است، از --tag beta استفاده کنید.

--channel extended-stable فقط برای بسته است و نصب همچنان فقط در پیش‌زمینه انجام می‌شود. OpenClaw انتخاب‌گر عمومی npm یعنی extended-stable را می‌خواند، بسته دقیق انتخاب‌شده را تأیید می‌کند و همان نسخه دقیق را نصب می‌کند. نبود یا ناسازگاری داده‌های رجیستری باعث توقف ایمن می‌شود؛ هرگز به latest برنمی‌گردد. اگر نسخه انتخاب‌شده از نسخه نصب‌شده قدیمی‌تر باشد، تأیید عادی تنزل نسخه همچنان اعمال می‌شود. CLI پس از به‌روزرسانی موفق هسته، کانال را ماندگار می‌کند؛ اجرای مستقیم npm install -g openclaw@extended-stable مقدار update.channel را به‌روزرسانی نمی‌کند. پس از تعویض هسته، Pluginهای رسمی واجد شرایط npm با قصد bare/default یا latest به همان نسخه دقیق هسته همگرا می‌شوند. سنجاق‌های دقیق و تگ‌های صریح غیر latest، Pluginهای شخص ثالث و منابع غیر npm بدون تغییر باقی می‌مانند. نصب‌های کاتالوگی ایجادشده با نسخه‌های فعلی OpenClaw، همان قصد پیش‌فرض را حفظ می‌کنند. رکوردهای قدیمی‌تر که فقط حاوی یک نسخه دقیق هستند، سنجاق‌شده باقی می‌مانند، زیرا OpenClaw نمی‌تواند با اطمینان یک سنجاق خودکار قدیمی را از سنجاق کاربر تشخیص دهد؛ openclaw plugins update @openclaw/name را یک‌بار در کانال extended-stable اجرا کنید تا آن Plugin دوباره ردیابی دقیق هسته را دنبال کند.

--channel dev یک checkout متحرک و ماندگار GitHub از main فراهم می‌کند. برای یک به‌روزرسانی یک‌باره بسته، --tag main به مشخصه بسته github:openclaw/openclaw#main نگاشت می‌شود و آن را مستقیماً از طریق مدیر بسته مقصد (npm/pnpm/bun) نصب می‌کند.

برای Pluginهای مدیریت‌شده، نبود انتشار بتا یک هشدار است، نه خطا: به‌روزرسانی هسته همچنان می‌تواند موفق شود، درحالی‌که Plugin به انتشار پیش‌فرض/latest ثبت‌شده خود برمی‌گردد.

برای معنای کانال‌ها، به کانال‌های انتشار مراجعه کنید.

جابه‌جایی میان نصب‌های npm و git

برای تغییر نوع نصب از کانال‌ها استفاده کنید. به‌روزرسان، وضعیت، پیکربندی، اطلاعات احراز هویت و فضای کاری شما را در ~/.openclaw حفظ می‌کند؛ فقط مشخص می‌کند CLI و Gateway از کدام نصب کد OpenClaw استفاده کنند.

bash
# نصب بسته npm -> checkout قابل‌ویرایش gitopenclaw update --channel dev # checkout گیت -> نصب بسته npmopenclaw update --channel stable

ابتدا تغییر حالت نصب را پیش‌نمایش کنید:

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

dev وجود یک checkout گیت را تضمین می‌کند، آن را build می‌کند و CLI سراسری را از همان checkout نصب می‌کند. کانال‌های stable، extended-stable و beta از نصب بسته استفاده می‌کنند. extended-stable در یک checkout گیت، بدون تغییر یا تبدیل آن، رد می‌شود. اگر Gateway از قبل نصب شده باشد، openclaw update فراداده سرویس را تازه‌سازی و آن را مجدداً راه‌اندازی می‌کند، مگر اینکه --no-restart را ارسال کنید.

برای نصب‌های بسته‌ای دارای سرویس Gateway مدیریت‌شده، openclaw update ریشه بسته مورداستفاده آن سرویس را هدف می‌گیرد. اگر فرمان پوسته‌ای openclaw از نصب دیگری آمده باشد، به‌روزرسان هر دو ریشه و مسیر Node سرویس مدیریت‌شده را چاپ می‌کند و پیش از جایگزینی بسته، نسخه Node را با الزام engines.node انتشار مقصد بررسی می‌کند.

سرورهای checkout منبع (اسکریپت مرجع)

تیم‌هایی که Gateway را مستقیماً از یک checkout گیت روی سرور اجرا می‌کنند، می‌توانند آن را از داخل همان checkout با scripts/update-gateway.sh به‌روزرسانی کنند. این اسکریپت، مرجع به‌روزرسانی کارآمد سرور منبع است: خروجی‌های build ردیابی‌شده‌ای را که pnpm build بازنویسی می‌کند بازیابی می‌کند، در صورت وجود هر تغییر محلی دیگری با توقف ایمن مواجه می‌شود، main را fast-forward می‌کند (یا شاخه محلی سرور را روی origin/main rebase می‌کند)، وابستگی‌ها را نصب می‌کند، build تمیزی می‌سازد و Gateway را مجدداً راه‌اندازی می‌کند.

bash
ssh you@server 'cd /path/to/openclaw && scripts/update-gateway.sh'

برای واحدهای سرویس سفارشی، فرمان راه‌اندازی مجدد را بازنویسی کنید یا آن را کاملاً رد کنید:

bash
OPENCLAW_UPDATE_RESTART_CMD='systemctl --user restart openclaw-gateway.service' scripts/update-gateway.shOPENCLAW_UPDATE_RESTART_CMD='' scripts/update-gateway.sh

برای یک نصب منبع ساده تک‌کاربره، به‌جای آن openclaw update --channel dev را ترجیح دهید — این فرمان checkout، build و راه‌اندازی مجدد Gateway را برای شما مدیریت می‌کند.

جایگزین: اجرای دوباره نصب‌کننده

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

بازیابی را با --version به یک نسخه یا dist-tag مشخص سنجاق کنید:

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 درحال‌اجرا هنگام تعویض، تلاش کند فایل‌های هسته یا Plugin را بارگذاری کند. پس از پایان کار مدیر بسته، 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 نصب می‌کند. بسته نامزد، نسخه Node میزبان را هنگام preinstall اعتبارسنجی می‌کند؛ تنها پس از آن OpenClaw موجودی بسته‌بندی‌شده dist را تأیید می‌کند و درخت بسته تمیز را با پیشوند سراسری واقعی جابه‌جا می‌کند. یک محافظ تکمیل بسته‌بندی‌شده از موجودی موردانتظار کنار گذاشته می‌شود و تنها پس از موفقیت preinstall حذف می‌شود؛ بنابراین ردشدن اسکریپت‌های چرخه‌عمر نیز پیش از تعویض باعث شکست می‌شود. در npm 12 و جدیدتر، به‌روزرسان فقط چرخه‌عمر OpenClaw نامزد را تأیید می‌کند؛ اسکریپت‌های وابستگی‌های ترایایی همچنان مسدود می‌مانند. این کار از روی‌هم‌نویسی بسته جدید توسط npm روی فایل‌های کهنه بسته قبلی جلوگیری می‌کند. اگر فرمان نصب ناموفق شود، OpenClaw یک‌بار دیگر با --omit=optional تلاش می‌کند که به میزبان‌هایی کمک می‌کند که وابستگی‌های اختیاری بومی در آن‌ها قابل کامپایل نیستند.

فرمان‌های به‌روزرسانی npm و به‌روزرسانی Plugin که OpenClaw مدیریت می‌کند، قرنطینه زنجیره تأمین min-release-age در npm (یا کلید پیکربندی قدیمی‌تر before) را نیز برای فرایند فرزند npm پاک می‌کنند. این سیاست برای حفاظت عمومی وجود دارد، اما به‌روزرسانی صریح OpenClaw یعنی «انتشار انتخاب‌شده را همین حالا نصب کن.»

bash
pnpm add -g openclaw@latest

اگر pnpm 11 نسخه OpenClaw 2026.7.1 را نصب کرده است، آن فرمان دستی را یک‌بار اجرا کنید. آن انتشار پیش از چیدمان ایزوله بسته‌های سراسری pnpm 11 منتشر شده است، بنابراین به‌روزرسان آن ممکن است نصب npm دیگری را با CLI درحال‌اجرا اشتباه بگیرد. انتشارهای بعدی مالکیت pnpm را حفظ می‌کنند و هنگام به‌روزرسانی‌ها ریشه بسته جایگزین را دنبال می‌کنند. آن‌ها همچنین از دایرکتوری bin سراسری گزارش‌شده مدیر مالک استفاده می‌کنند و زمانی که فرمان pnpm موجود، ریشه یا نسخه اصلی سراسری دیگری را گزارش کند، یا بسته فراخواننده یتیم باشد یا تنها نصب فعال OpenClaw در آنجا نباشد، پیش از هرگونه تغییر متوقف می‌شوند.

اگر OpenClaw یک گروه نصب سراسری pnpm 11 را با بسته دیگری به‌اشتراک بگذارد، به‌روزرسان خودکار پیش از تغییر گروه متوقف می‌شود. گروه اصلی جداشده با ویرگول را به‌صورت دستی به‌روزرسانی کنید تا بسته‌های هم‌گروه و سیاست build آن دست‌نخورده باقی بمانند.

bash
bun add -g openclaw@latest

مباحث پیشرفته نصب npm

درخت بسته فقط‌خواندنی

OpenClaw نصب‌های سراسری بسته‌بندی‌شده را هنگام اجرا فقط‌خواندنی در نظر می‌گیرد، حتی زمانی که دایرکتوری سراسری بسته برای کاربر فعلی قابل‌نوشتن باشد. نصب بسته‌های Plugin در ریشه‌های npm/git تحت مالکیت OpenClaw در دایرکتوری پیکربندی کاربر قرار می‌گیرند و راه‌اندازی Gateway درخت بسته OpenClaw را تغییر نمی‌دهد.

برخی تنظیمات npm در Linux، بسته‌های سراسری را در دایرکتوری‌های تحت مالکیت root مانند /usr/lib/node_modules/openclaw نصب می‌کنند. OpenClaw از این چیدمان پشتیبانی می‌کند، زیرا فرمان‌های نصب/به‌روزرسانی Plugin خارج از آن دایرکتوری سراسری بسته می‌نویسند.

واحدهای systemd سخت‌سازی‌شده

به OpenClaw اجازه نوشتن در ریشه‌های پیکربندی/وضعیت خود را بدهید تا نصب‌های صریح Plugin، به‌روزرسانی‌های Plugin و پاک‌سازی doctor بتوانند تغییراتشان را ماندگار کنند:

ini
ReadWritePaths=/var/lib/openclaw /home/openclaw/.openclaw /tmp
بررسی اولیه فضای دیسک

پیش از به‌روزرسانی بسته‌ها و نصب‌های صریح Plugin، OpenClaw در حد امکان فضای دیسک حجم مقصد را بررسی می‌کند. فضای کم هشداری همراه با مسیر بررسی‌شده ایجاد می‌کند، اما به‌روزرسانی را مسدود نمی‌کند، زیرا سهمیه‌های فایل‌سیستم، snapshotها و حجم‌های شبکه می‌توانند پس از بررسی تغییر کنند. نصب واقعی مدیر بسته و تأیید پس از نصب همچنان مرجع نهایی هستند.

به‌روزرسان خودکار

به‌طور پیش‌فرض خاموش است. آن را در ~/.openclaw/openclaw.json فعال کنید:

json5
{  update: {    channel: "stable",    auto: {      enabled: true,    },  },}
کانال رفتار
stable پس از یک تأخیر داخلی با نوسان قطعی برای انتشار تدریجی اعمال می‌شود.
extended-stable هنگام راه‌اندازی و هر 24 ساعت، وقتی checkOnStart فعال است، وجود راهنمای به‌روزرسانی فقط‌خواندنی را بررسی می‌کند. هرگز به‌طور خودکار اعمال نمی‌شود.
beta در یک بازه داخلی بررسی می‌کند و بلافاصله اعمال می‌شود.
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 را مستقیماً آغاز کند، به‌روزرسانی Gateway را نشان می‌دهد. این مورد Control UI میزبانی‌شده در مرورگر، Gatewayهای راه دور و Gatewayهای محلی با مدیریت دستی را پوشش می‌دهد.

در برنامهٔ امضاشدهٔ macOS، یک Gateway محلی متعلق به برنامه، آن کارت را به به‌روزرسانی برنامهٔ Mac + Gateway تغییر می‌دهد. Sparkle ابتدا برنامه را به‌روزرسانی می‌کند؛ پس از اجرای مجدد، برنامه openclaw update --tag <app-version> --json را اجرا می‌کند، Gateway خود را دوباره راه‌اندازی می‌کند و سلامت را در یک پنجرهٔ پیشرفت به سبک راه‌اندازی تأیید می‌کند. این پنجره فقط زمانی ظاهر می‌شود که آن Gateway مدیریت‌شده به به‌روزرسانی، تعمیر یا نصب نیاز داشته باشد؛ به‌روزرسانی‌های صرفاً مربوط به برنامه مستقیماً برنامه را دوباره اجرا می‌کنند. جزئیات خرابی همراه با اقدامات Retry، راهنمای به‌روزرسانی و Discord قابل مشاهده باقی می‌مانند. برنامه هرگز از این مسیر هماهنگ‌شده برای Gateway راه دور یا دارای مدیریت خارجی استفاده نمی‌کند، هرگز Gateway جدیدتر را به نسخهٔ قبلی بازنمی‌گرداند و هرگز پین کانال extended-stable را نادیده نمی‌گیرد.

وقتی به‌روزرسانی موفق می‌شود، برنامه یک رویداد خوشامدگویی یک‌باره برای جدیدترین نشست مستقیم سطح‌بالا که تعامل واقعی کاربر/کانال دارد، در صف قرار می‌دهد. اجراهای Cron، Heartbeatها و به‌روزرسانی‌های نشستِ صرفاً پس‌زمینه، این انتخاب را تغییر نمی‌دهند. در حالت راه دور، برنامه فقط زمان اجرای Node محلی Mac خود را به‌روزرسانی می‌کند و رویداد را تنها زمانی می‌فرستد که Gateway راه دور متصل، دست‌کم به‌اندازهٔ برنامه جدید باشد.

پس از به‌روزرسانی

doctor را اجرا کنید

bash
openclaw doctor

پیکربندی را مهاجرت می‌دهد، خط‌مشی‌های DM را ممیزی می‌کند و سلامت Gateway را بررسی می‌کند. جزئیات: Doctor

Gateway را دوباره راه‌اندازی کنید

bash
openclaw gateway restart

تأیید کنید

bash
openclaw health

بازگشت به نسخهٔ قبلی

بازگشت به نسخهٔ قبلی دو لایه دارد:

  1. کد قدیمی‌تر OpenClaw را با حفظ وضعیت فعلی دوباره نصب کنید.
  2. فقط زمانی وضعیت پیش از به‌روزرسانی را بازیابی کنید که کد قدیمی‌تر نتواند از یک پیکربندی یا پایگاه دادهٔ مهاجرت‌یافته استفاده کند.

با بازگشت فقط کد شروع کنید. بازیابی وضعیت، تغییرات ایجادشده پس از نسخهٔ پشتیبان را حذف می‌کند.

پیش از به‌روزرسانی: یک نسخهٔ پشتیبان تأییدشده ایجاد کنید

openclaw update یک کپی خودکار از پیکربندی پیش از به‌روزرسانی را حفظ می‌کند، اما یک نقطهٔ بازیابی کامل وضعیت ایجاد نمی‌کند. پیش از یک به‌روزرسانی مهم، آن را صریحاً ایجاد کنید:

bash
mkdir -p ~/Backups/openclawopenclaw backup create --output ~/Backups/openclaw --verify

مانیفست بایگانی، نسخهٔ OpenClaw و مسیرهای مبدأ گنجانده‌شده در نسخهٔ پشتیبان را ثبت می‌کند. بایگانی می‌تواند شامل اعتبارنامه‌ها، نمایه‌های احراز هویت و وضعیت کانال باشد؛ بنابراین آن را با مجوزهای مختص مالک و همان سطح حفاظت دایرکتوری وضعیت زنده نگهداری کنید. برای فایل‌های گنجانده‌شده و عمداً حذف‌شده، نسخهٔ پشتیبان را ببینید.

برای یک نقطهٔ بازیابی بایت‌به‌بایت که شامل مصنوعات ناپایدار حذف‌شده از بایگانی قابل‌انتقال است، Gateway را متوقف کنید و از اسنپ‌شات سامانهٔ فایل، حجم یا VM ارائه‌شده توسط پلتفرم خود استفاده کنید.

بازگرداندن نصب بسته به نسخهٔ قبلی

نسخه‌های منتشرشده را فهرست کنید، سپس نسخهٔ سالم شناخته‌شده را پیش‌نمایش و نصب کنید:

bash
npm view openclaw versions --jsonopenclaw update --tag <known-good-version> --dry-runopenclaw update --tag <known-good-version>

openclaw update --tag بر نصب مستقیم مدیر بسته ترجیح داده می‌شود. این مسیر بازگشت به نسخهٔ قبلی را تشخیص می‌دهد، تأیید می‌گیرد، همگرایی Pluginهای مدیریت‌شده و بررسی‌های سازگاری را در برابر هدف نصب‌شده اجرا می‌کند، فرادادهٔ سرویس را تازه‌سازی می‌کند، Gateway را دوباره راه‌اندازی می‌کند و نسخهٔ در حال اجرا را تأیید می‌کند. اگر کانال ذخیره‌شده extended-stable است، از --channel stable --tag <known-good-version> استفاده کنید، زیرا برچسب‌های دقیق یک‌باره را نمی‌توان با انتخابگر extended-stable ترکیب کرد.

به‌روزرسانی‌های بسته، گزینهٔ نامزد را پیش از فعال‌سازی آماده و تأیید می‌کنند. اگر جابه‌جایی سامانهٔ فایل یا جایگزینی شیم فرمان ناموفق باشد، OpenClaw بستهٔ قدیمی را به‌طور خودکار بازیابی می‌کند. پس از یک جابه‌جایی موفق، اگر بعداً بررسی سلامت Gateway ناموفق شود، به‌جای جایگزینی خودکار دوبارهٔ بسته، نسخهٔ قبلی و دستورالعمل‌های بازگشت دستی گزارش می‌شوند.

اگر مسیر به‌روزرسانی CLI در دسترس نیست، از همان مدیر بسته و محدودهٔ نصبی استفاده کنید که مالک Gateway فعلی هستند:

bash
openclaw gateway stopnpm i -g openclaw@<known-good-version>openclaw gateway install --forceopenclaw gateway restart

وقتی آن مدیر مالک نصب است، npm را با pnpm یا bun جایگزین کنید. هنگام بازیابی پس از رخداد، با تنظیم OPENCLAW_NO_AUTO_UPDATE=1 در محیط Gateway، از اعمال فوری نسخه‌ای جدیدتر توسط به‌روزرسان خودکار فعال جلوگیری کنید.

بازگرداندن یک checkout منبع به نسخهٔ قبلی

از یک checkout تمیز استفاده کنید و یک برچسب یا commit سالم شناخته‌شده را انتخاب کنید:

bash
git fetch --all --tagsgit checkout --detach <known-good-tag-or-commit>pnpm install && pnpm buildopenclaw gateway restart

برای بازگشت به جدیدترین نسخه: git checkout main && git pull.

به‌روزرسان به‌طور خودکار checkout گیت را به شاخه و SHA قبلی آن بازمی‌گرداند، اگر نصب وابستگی، ساخت، ساخت UI یا doctor پس از آغاز به‌روزرسانی گیت ناموفق شود. وقتی عمداً یک commit قدیمی‌تر را انتخاب می‌کنید، همچنان checkout دستی لازم است.

بازگشت به نسخهٔ قبلی در آن سوی مهاجرت SQLite نشست

پیش از راه‌اندازی یک نسخهٔ قدیمی‌تر و فایل‌محور OpenClaw، از CLI فعلی برای بازیابی مصنوعات بایگانی‌شدهٔ قدیمی رونوشت استفاده کنید:

bash
openclaw gateway stopopenclaw doctor --session-sqlite restore --session-sqlite-all-agents

این کار داده‌های SQLite را حذف نمی‌کند. نشست‌هایی که پس از مهاجرت SQLite ایجاد شده‌اند فقط در SQLite وجود دارند و در زمان اجرای قدیمی‌تر ظاهر نمی‌شوند. بازگشت به نسخهٔ قبلی پس از مهاجرت SQLite نشست را ببینید.

فقط در صورت ضرورت وضعیت را بازیابی کنید

اگر کد قدیمی‌تر نتواند پیکربندی یا طرح‌وارهٔ پایگاه دادهٔ جدیدتر را بخواند، Gateway را متوقف کنید و اسنپ‌شات تأییدشدهٔ سامانهٔ فایل، حجم یا VM پیش از به‌روزرسانی را بازیابی کنید. پیش از بازیابی، وضعیت فعلی را جداگانه حفظ کنید، زیرا این کار تغییرات ایجادشده پس از اسنپ‌شات را حذف می‌کند.

بایگانی‌های گستردهٔ openclaw backup create از ایجاد و تأیید پشتیبانی می‌کنند، اما فعال‌سازی کل بایگانی در محل را پشتیبانی نمی‌کنند. یک بایگانی گسترده را در یک دایرکتوری آماده‌سازی استخراج کنید و برای بازیابی آفلاین از نگاشت مبدأ به بایگانی manifest.json آن استفاده کنید. openclaw backup sqlite restore نیز یک پایگاه دادهٔ تأییدشده را در یک هدف تازه می‌نویسد؛ فعال‌سازی آن هدف همچنان یک مرحلهٔ صریح و آفلاین برای اپراتور است.

بازگشت به نسخهٔ قبلی را تأیید کنید

bash
openclaw --versionopenclaw healthopenclaw plugins list --jsonopenclaw gateway status --deep --jsonopenclaw doctor --lint --json

اگر گیر کرده‌اید

  • دوباره openclaw doctor را اجرا کنید و خروجی را با دقت بخوانید.
  • برای openclaw update --channel dev در checkoutهای منبع، به‌روزرسان در صورت نیاز pnpm را به‌طور خودکار راه‌اندازی اولیه می‌کند. اگر خطای راه‌اندازی اولیهٔ pnpm/corepack را مشاهده کردید، pnpm را به‌صورت دستی نصب کنید (یا corepack را دوباره فعال کنید) و به‌روزرسانی را دوباره اجرا کنید.
  • بررسی کنید: عیب‌یابی
  • در Discord بپرسید: https://discord.gg/clawd

مرتبط

Was this useful?
On this page

On this page