Maintenance
بهروزرسانی
OpenClaw را بهروز نگه دارید.
برای جایگزینی ایمیجها در Docker، Podman و Kubernetes، به ارتقای ایمیجهای کانتینر مراجعه کنید. Gateway پیش از آمادهشدن، عملیات ارتقای ایمن هنگام راهاندازی را اجرا میکند و اگر وضعیت مانتشده به تعمیر دستی نیاز داشته باشد، خارج میشود.
توصیهشده: openclaw update
نوع نصب شما (npm یا git) را تشخیص میدهد، آخرین نسخه را دریافت میکند، openclaw doctor را اجرا میکند و Gateway را مجدداً راهاندازی میکند.
openclaw updateکانالها را تغییر دهید یا نسخه مشخصی را هدف قرار دهید:
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 تگ توزیع beta در npm را ترجیح میدهد، اما اگر تگ beta موجود نباشد
یا نسخه آن قدیمیتر از آخرین انتشار پایدار باشد، به stable/latest برمیگردد.
برای بهروزرسانی یکباره بسته که به تگ توزیع خام beta در npm مقید باشد، بهجای آن
از --tag beta استفاده کنید.
--channel extended-stable فقط برای بستههاست و نصب همچنان
فقط در پیشزمینه انجام میشود. OpenClaw انتخابگر عمومی extended-stable در npm را میخواند،
بسته دقیق انتخابشده را تأیید میکند و همان نسخه دقیق را نصب میکند. نبودن
یا ناسازگاری دادههای رجیستری باعث توقف ایمن میشود و هرگز به latest برنمیگردد.
اگر نسخه انتخابشده قدیمیتر از نسخه نصبشده باشد، تأیید معمول
تنزل نسخه همچنان اعمال میشود. CLI پس از بهروزرسانی موفق هسته، کانال را
ذخیره میکند؛ اجرای مستقیم npm install -g openclaw@extended-stable
مقدار update.channel را بهروز نمیکند.
پس از تعویض هسته، Pluginهای رسمی واجد شرایط npm که قصد bare/default یا
latest دارند، با همان نسخه دقیق هسته همگرا میشوند. پینهای دقیق و تگهای صریح
غیر از latest، Pluginهای شخص ثالث و منابع غیر npm بدون تغییر باقی میمانند.
نصبهای کاتالوگ ایجادشده با نسخههای فعلی OpenClaw همان قصد پیشفرض را
حفظ میکنند. رکوردهای قدیمیتر که فقط شامل یک نسخه دقیق هستند، پینشده باقی میمانند، زیرا
OpenClaw نمیتواند با اطمینان یک پین خودکار قدیمی را از پین کاربر تشخیص دهد؛ برای
بازگرداندن آن Plugin به ردیابی دقیق هسته، یکبار در کانال extended-stable فرمان
openclaw plugins update @openclaw/name را اجرا کنید.
--channel dev یک checkout متحرک و پایدار از main در GitHub فراهم میکند. برای
بهروزرسانی یکباره بسته، --tag main به مشخصه بسته
github:openclaw/openclaw#main نگاشت میشود و آن را مستقیماً از طریق مدیر بسته هدف
(npm/pnpm/bun) نصب میکند.
برای Pluginهای مدیریتشده، نبود انتشار beta یک هشدار است، نه خطا: بهروزرسانی هسته همچنان میتواند موفق شود، درحالیکه Plugin به انتشار default/latest ثبتشده خود برمیگردد.
برای معنای کانالها، به کانالهای انتشار مراجعه کنید.
جابهجایی بین نصبهای npm و git
برای تغییر نوع نصب از کانالها استفاده کنید. بهروزرسان، وضعیت، پیکربندی،
اعتبارنامهها و فضای کاری شما را در ~/.openclaw حفظ میکند؛ فقط نصب کد OpenClaw
مورد استفاده CLI و Gateway را تغییر میدهد.
# نصب بسته npm -> checkout قابلویرایش gitopenclaw update --channel dev # checkout گیت -> نصب بسته npmopenclaw update --channel stableابتدا تغییر حالت نصب را پیشنمایش کنید:
openclaw update --channel dev --dry-runopenclaw update --channel stable --dry-rundev وجود یک checkout گیت را تضمین میکند، آن را میسازد و CLI سراسری را از همان
checkout نصب میکند. کانالهای stable، extended-stable و beta از نصب
بسته استفاده میکنند. extended-stable روی checkout گیت، بدون تغییر یا
تبدیل آن، رد میشود. اگر Gateway از قبل نصب شده باشد، openclaw update
فراداده سرویس را تازهسازی و آن را مجدداً راهاندازی میکند، مگر اینکه --no-restart را ارسال کنید.
برای نصبهای بستهای دارای سرویس Gateway مدیریتشده، openclaw update
ریشه بسته مورد استفاده آن سرویس را هدف قرار میدهد. اگر فرمان openclaw در پوسته
از نصب دیگری آمده باشد، بهروزرسان هر دو ریشه و مسیر Node سرویس
مدیریتشده را نمایش میدهد و پیش از جایگزینی بسته، نسخه Node را با الزام
engines.node انتشار هدف بررسی میکند.
روش جایگزین: اجرای مجدد نصبکننده
curl -fsSL https://openclaw.ai/install.sh | bashبرای رد کردن راهاندازی اولیه، --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با --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 هماهنگ کند. اگر یک نصب تحت نظارت را بهصورت دستی
بهروز میکنید، ابتدا Gateway مدیریتشده را متوقف کنید. مدیران بسته فایلها را
درجا جایگزین میکنند و در غیر این صورت، Gateway در حال اجرا ممکن است هنگام تعویض
برای بارگذاری فایلهای هسته یا Plugin تلاش کند. پس از پایان کار مدیر بسته،
Gateway را مجدداً راهاندازی کنید تا نصب جدید را دریافت کند.
در نصب سراسری سیستمی Linux تحت مالکیت root، اگر openclaw update با خطای
EACCES مواجه شد، با npm سیستمی بازیابی کنید و هنگام جایگزینی دستی،
Gateway را متوقف نگه دارید. از همان پرچمهای پروفایل/محیطی استفاده کنید که معمولاً برای
آن 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 دوباره تلاش میکند؛ این کار به
میزبانهایی کمک میکند که وابستگیهای اختیاری بومی در آنها قابل کامپایل نیستند.
فرمانهای بهروزرسانی npm و بهروزرسانی Plugin که توسط OpenClaw مدیریت میشوند،
قرنطینه زنجیره تأمین min-release-age در npm (یا کلید پیکربندی قدیمیتر before) را نیز
برای فرایند فرزند npm پاک میکنند. این سیاست برای حفاظت عمومی وجود دارد، اما یک
بهروزرسانی صریح OpenClaw یعنی «انتشار انتخابشده را همین حالا نصب کن».
pnpm add -g openclaw@latestbun 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 بتوانند تغییراتشان را ذخیره کنند:
ReadWritePaths=/var/lib/openclaw /home/openclaw/.openclaw /tmpبررسی اولیه فضای دیسک
پیش از بهروزرسانی بستهها و نصبهای صریح Plugin، OpenClaw تلاش میکند فضای دیسک حجم هدف را بهصورت بهترینتلاش بررسی کند. فضای کم هشداری همراه با مسیر بررسیشده ایجاد میکند، اما بهروزرسانی را مسدود نمیکند، زیرا سهمیههای فایلسیستم، snapshotها و حجمهای شبکه ممکن است پس از بررسی تغییر کنند. نصب واقعی مدیر بسته و تأیید پس از نصب همچنان ملاک نهایی هستند.
بهروزرسان خودکار
بهطور پیشفرض خاموش است. آن را در ~/.openclaw/openclaw.json فعال کنید:
{ update: { channel: "stable", auto: { enabled: true, stableDelayHours: 6, stableJitterHours: 12, betaCheckIntervalHours: 1, }, },}| کانال | رفتار |
|---|---|
stable |
بهاندازه stableDelayHours (پیشفرض: 6) منتظر میماند، سپس با تأخیر تصادفی قطعی در بازه stableJitterHours (پیشفرض: 12) برای انتشار تدریجی اعمال میکند. |
extended-stable |
هنگام راهاندازی و در صورت فعال بودن checkOnStart، هر 24 ساعت یکبار وجود راهنمای فقطخواندنی بهروزرسانی را بررسی میکند. هرگز خودکار اعمال نمیکند. |
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 بهجای اجرای درونفرایندی مدیر بسته، یک فرمان امن پوسته گزارش میکند.
کارت بهروزرسانی نوار کناری رابط کنترل، همین جریان update.run را آغاز میکند. در
برنامه امضاشده macOS، کارت ابتدا برنامه را از طریق Sparkle بهروز میکند؛ پس از اجرای مجدد،
برنامه Gateway محلی مدیریتشده خود را به نسخه منطبق میرساند.
پس از بهروزرسانی
اجرای doctor
openclaw doctorپیکربندی را مهاجرت میدهد، سیاستهای پیام مستقیم را ممیزی میکند و سلامت Gateway را بررسی میکند. جزئیات: Doctor
راهاندازی مجدد Gateway
openclaw gateway restartتأیید
openclaw healthبازگردانی
پینکردن یک نسخه (npm)
npm i -g openclaw@<version>openclaw doctoropenclaw gateway restartپینکردن یک commit (منبع)
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های منبع، بهروزرسان در صورت نیازpnpmرا بهطور خودکار راهاندازی میکند. اگر خطای راهاندازی pnpm/corepack را مشاهده کردید،pnpmرا بهصورت دستی نصب کنید (یاcorepackرا دوباره فعال کنید) و بهروزرسانی را دوباره اجرا کنید. - بررسی کنید: عیبیابی
- در Discord بپرسید: https://discord.gg/clawd
مرتبط
- نمای کلی نصب: همه روشهای نصب.
- عیبیابی: بررسیهای سلامت پس از بهروزرسانیها.
- مهاجرت: راهنماهای مهاجرت به نسخههای اصلی جدید.