Maintenance
در حال بهروزرسانی
OpenClaw را بهروز نگه دارید.
توصیهشده: openclaw update
سریعترین روش برای بهروزرسانی. نوع نصب شما را تشخیص میدهد (npm یا git)، آخرین نسخه را دریافت میکند، openclaw doctor را اجرا میکند، و Gateway را راهاندازی مجدد میکند.
openclaw updateبرای تغییر کانالها یا هدفگرفتن یک نسخهٔ مشخص:
openclaw update --channel betaopenclaw update --channel devopenclaw update --dry-run # preview without applyingopenclaw update گزینهٔ --verbose را نمیپذیرد. برای عیبیابی بهروزرسانی، از
--dry-run برای پیشنمایش اقدامهای برنامهریزیشده، از --json برای نتایج ساختیافته، یا از
openclaw update status --json برای بررسی وضعیت کانال و موجودبودن استفاده کنید. نصبکننده
گزینهٔ --verbose خودش را دارد، اما آن گزینه بخشی از
openclaw update نیست.
--channel beta بتا را ترجیح میدهد، اما runtime وقتی تگ بتا وجود نداشته باشد یا از آخرین انتشار پایدار قدیمیتر باشد، به stable/latest برمیگردد. اگر dist-tag خام npm beta را برای یک بهروزرسانی یکبارهٔ بسته میخواهید، از --tag beta استفاده کنید.
برای یک checkout دائمی و متحرک GitHub main از --channel dev استفاده کنید. برای بهروزرسانیهای بسته، --tag main در یک اجرا به github:openclaw/openclaw#main نگاشت میشود، و مشخصات منبع GitHub/git پیش از نصب مرحلهبندیشدهٔ npm در یک tarball موقت بستهبندی میشوند.
برای Pluginهای مدیریتشده، بازگشت کانال بتا یک هشدار است: بهروزرسانی هسته همچنان میتواند موفق شود، در حالی که یک Plugin از انتشار پیشفرض/آخرین ثبتشدهٔ خودش استفاده میکند، چون نسخهٔ بتای Plugin موجود نیست.
برای معنای کانالها، کانالهای توسعه را ببینید.
جابهجایی بین نصبهای npm و git
وقتی میخواهید نوع نصب را تغییر دهید، از کانالها استفاده کنید. بهروزرسان وضعیت، پیکربندی، اعتبارنامهها و workspace شما را در ~/.openclaw نگه میدارد؛ فقط نصب کد OpenClaw را که CLI و Gateway استفاده میکنند تغییر میدهد.
# npm package install -> editable git checkoutopenclaw update --channel dev # git checkout -> npm package installopenclaw update --channel stableابتدا با --dry-run اجرا کنید تا تغییر دقیق حالت نصب را پیشنمایش کنید:
openclaw update --channel dev --dry-runopenclaw update --channel stable --dry-runکانال dev یک checkout گیت را تضمین میکند، آن را build میکند، و CLI سراسری را از همان checkout نصب میکند. کانالهای stable و beta از نصبهای بسته استفاده میکنند. اگر Gateway از قبل نصب شده باشد، openclaw update فرادادهٔ سرویس را تازه میکند و آن را دوباره راهاندازی میکند، مگر اینکه --no-restart را بدهید.
برای نصبهای بسته با یک سرویس Gateway مدیریتشده، openclaw update ریشهٔ بستهای را هدف میگیرد که آن سرویس استفاده میکند. اگر فرمان shell openclaw از نصب متفاوتی بیاید، بهروزرسان هر دو ریشه و مسیر Node سرویس مدیریتشده را چاپ میکند. بهروزرسانی بسته از package manager مالک ریشهٔ سرویس استفاده میکند و پیش از جایگزینی بسته، Node سرویس مدیریتشده را با engine انتشار هدف بررسی میکند.
جایگزین: اجرای دوبارهٔ نصبکننده
curl -fsSL https://openclaw.ai/install.sh | bashبرای ردکردن onboarding، --no-onboard را اضافه کنید. برای اجبار یک نوع نصب مشخص از طریق نصبکننده، --install-method git --no-onboard یا
--install-method npm --no-onboard را بدهید.
اگر openclaw update پس از مرحلهٔ نصب بستهٔ npm شکست خورد، نصبکننده را دوباره اجرا کنید. نصبکننده بهروزرسان قدیمی را صدا نمیزند؛ نصب بستهٔ سراسری را مستقیما اجرا میکند و میتواند یک نصب npm نیمهبهروزشده را بازیابی کند.
curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method npmبرای ثابتکردن بازیابی روی یک نسخه یا dist-tag مشخص، --version را اضافه کنید:
curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method npm --version <version-or-dist-tag>جایگزین: npm، pnpm، یا bun دستی
npm i -g openclaw@latestبرای نصبهای نظارتشده، openclaw update را ترجیح دهید، چون میتواند تعویض بسته را با سرویس Gateway در حال اجرا هماهنگ کند. اگر روی یک نصب نظارتشده بهصورت دستی بهروزرسانی میکنید، پیش از شروع package manager، Gateway مدیریتشده را متوقف کنید. Package managerها فایلها را درجا جایگزین میکنند، و در غیر این صورت یک Gateway در حال اجرا ممکن است هنگام تعویض موقت و نیمهکارهٔ درخت بسته، تلاش کند فایلهای هسته یا Plugin را بارگذاری کند. پس از پایان کار package manager، Gateway را دوباره راهاندازی کنید تا سرویس نصب جدید را دریافت کند.
برای یک نصب سراسری لینوکسی متعلق به root، اگر openclaw update با
EACCES شکست خورد و با npm سیستمی بازیابی میکنید، Gateway را در طول جایگزینی دستی بسته متوقف نگه دارید. از همان flagهای پروفایل openclaw یا محیطی استفاده کنید که معمولا برای آن Gateway استفاده میکنید. /usr/bin/npm را با npm سیستمی که مالک پیشوند سراسری متعلق به root روی میزبان شماست جایگزین کنید:
openclaw gateway stopsudo /usr/bin/npm i -g openclaw@latestopenclaw gateway install --forceopenclaw gateway restartسپس سرویس را تأیید کنید:
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 دوباره تلاش میکند. این تلاش دوباره به میزبانهایی کمک میکند که وابستگیهای اختیاری native نمیتوانند روی آنها compile شوند، در حالی که اگر fallback هم شکست بخورد، خطای اصلی همچنان قابل مشاهده میماند.
فرمانهای بهروزرسانی npm و بهروزرسانی Plugin که توسط OpenClaw مدیریت میشوند نیز قرنطینهٔ npm
min-release-age را برای فرایند فرزند npm پاک میکنند. npm ممکن است آن سیاست را بهعنوان آستانهٔ مشتقشدهٔ before گزارش کند؛ هر دو برای سیاستهای عمومی قرنطینهٔ زنجیرهٔ تأمین مفید هستند، اما یک بهروزرسانی صریح OpenClaw یعنی «انتشار انتخابشدهٔ OpenClaw را همین حالا نصب کن.»
pnpm add -g openclaw@latestbun add -g openclaw@latestموضوعات پیشرفتهٔ نصب npm
درخت بستهٔ فقطخواندنی
OpenClaw نصبهای سراسری بستهبندیشده را در runtime بهعنوان فقطخواندنی در نظر میگیرد، حتی وقتی دایرکتوری بستهٔ سراسری برای کاربر فعلی قابل نوشتن باشد. نصبهای بستهٔ Plugin در ریشههای npm/git متعلق به OpenClaw زیر دایرکتوری پیکربندی کاربر قرار میگیرند، و راهاندازی Gateway درخت بستهٔ OpenClaw را تغییر نمیدهد.
برخی تنظیمات npm لینوکس بستههای سراسری را زیر دایرکتوریهای متعلق به root مانند /usr/lib/node_modules/openclaw نصب میکنند. OpenClaw از این چیدمان پشتیبانی میکند، چون فرمانهای نصب/بهروزرسانی Plugin بیرون از آن دایرکتوری بستهٔ سراسری مینویسند.
واحدهای systemd سختسازیشده
به OpenClaw دسترسی نوشتن به ریشههای پیکربندی/وضعیتش بدهید تا نصبهای صریح Plugin، بهروزرسانیهای Plugin، و پاکسازی doctor بتوانند تغییراتشان را پایدار کنند:
ReadWritePaths=/var/lib/openclaw /home/openclaw/.openclaw /tmpپیشبررسی فضای دیسک
پیش از بهروزرسانیهای بسته و نصبهای صریح Plugin، OpenClaw تلاش میکند یک بررسی best-effort از فضای دیسک برای volume هدف انجام دهد. فضای کم هشداری با مسیر بررسیشده تولید میکند، اما بهروزرسانی را مسدود نمیکند، چون quotaهای فایلسیستم، snapshotها و volumeهای شبکه میتوانند پس از بررسی تغییر کنند. نصب واقعی package-manager و تأیید پس از نصب همچنان مرجع نهایی هستند.
بهروزرسان خودکار
بهروزرسان خودکار بهصورت پیشفرض خاموش است. آن را در ~/.openclaw/openclaw.json فعال کنید:
{ update: { channel: "stable", auto: { enabled: true, stableDelayHours: 6, stableJitterHours: 12, betaCheckIntervalHours: 1, }, },}| کانال | رفتار |
|---|---|
stable |
بهاندازهٔ stableDelayHours صبر میکند، سپس با jitter قطعی در سراسر stableJitterHours اعمال میکند (انتشار تدریجی). |
beta |
هر betaCheckIntervalHours بررسی میکند (پیشفرض: هر ساعت) و بلافاصله اعمال میکند. |
dev |
اعمال خودکار ندارد. از openclaw update بهصورت دستی استفاده کنید. |
Gateway همچنین هنگام راهاندازی یک راهنمای بهروزرسانی ثبت میکند (با update.checkOnStart: false غیرفعال کنید).
برای downgrade یا بازیابی حادثه، OPENCLAW_NO_AUTO_UPDATE=1 را در محیط Gateway تنظیم کنید تا اعمال خودکار حتی وقتی update.auto.enabled پیکربندی شده باشد مسدود شود. راهنماهای بهروزرسانی زمان راهاندازی همچنان میتوانند اجرا شوند، مگر اینکه update.checkOnStart هم غیرفعال شده باشد.
بهروزرسانیهای package-manager که از طریق handler زندهٔ control-plane Gateway درخواست میشوند، درخت بسته را داخل فرایند Gateway در حال اجرا جایگزین نمیکنند. در نصبهای سرویس مدیریتشده، Gateway یک handoff جداشده را شروع میکند، خارج میشود، و اجازه میدهد مسیر معمول CLI openclaw update --yes --json سرویس را متوقف کند، بسته را جایگزین کند، فرادادهٔ سرویس را تازه کند، دوباره راهاندازی کند، نسخه و دسترسپذیری Gateway را تأیید کند، و در صورت امکان یک macOS LaunchAgent نصبشده اما بارگذارینشده را بازیابی کند. اگر Gateway نتواند آن handoff را ایمن انجام دهد، update.run بهجای اجرای package manager درون فرایند، یک فرمان shell ایمن گزارش میکند.
پس از بهروزرسانی
اجرای doctor
openclaw doctorپیکربندی را migrate میکند، سیاستهای DM را audit میکند، و سلامت Gateway را بررسی میکند. جزئیات: Doctor
راهاندازی مجدد Gateway
openclaw gateway restartتأیید
openclaw healthبازگشت
ثابتکردن یک نسخه (npm)
npm i -g openclaw@<version>openclaw doctoropenclaw gateway restartثابتکردن یک commit (source)
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روی checkoutهای source، بهروزرسان در صورت نیازpnpmرا بهصورت خودکار bootstrap میکند. اگر خطای bootstrap مربوط به pnpm/corepack دیدید،pnpmرا دستی نصب کنید (یاcorepackرا دوباره فعال کنید) و بهروزرسانی را دوباره اجرا کنید. - بررسی کنید: عیبیابی
- در Discord بپرسید: https://discord.gg/clawd
مرتبط
- نمای کلی نصب: همهٔ روشهای نصب.
- Doctor: بررسیهای سلامت پس از بهروزرسانیها.
- مهاجرت: راهنماهای مهاجرت نسخهٔ اصلی.