Maintenance
بهروزرسانی
OpenClaw را بهروز نگه دارید.
توصیهشده: openclaw update
سریعترین راه برای بهروزرسانی. نوع نصب شما را تشخیص میدهد (npm یا git)، آخرین نسخه را دریافت میکند، openclaw doctor را اجرا میکند و Gateway را دوباره راهاندازی میکند.
openclaw update
برای تغییر کانالها یا هدفگرفتن یک نسخه مشخص:
openclaw update --channel beta
openclaw update --channel dev
openclaw update --tag main
openclaw update --dry-run # preview without applying
openclaw update گزینه --verbose را نمیپذیرد. برای عیبیابی بهروزرسانی، از
--dry-run برای پیشنمایش اقدامهای برنامهریزیشده، از --json برای نتایج ساختاریافته، یا از
openclaw update status --json برای بررسی وضعیت کانال و دسترسپذیری استفاده کنید.
نصبکننده گزینه --verbose خودش را دارد، اما آن گزینه بخشی از
openclaw update نیست.
--channel beta نسخه بتا را ترجیح میدهد، اما runtime وقتی برچسب بتا وجود نداشته باشد یا از آخرین انتشار پایدار قدیمیتر باشد، به stable/latest برمیگردد. اگر dist-tag خام بتای npm را برای یک بهروزرسانی یکباره بسته میخواهید، از --tag beta استفاده کنید.
OpenClaw هنوز کانال بهروزرسانی پشتیبانی LTS یا ماهانه ارائه نمیکند. ما در حال حرکت بهسمت خطوط پشتیبانی ماهانه سازگار با SemVer هستیم، اما امروز کانالهای پشتیبانیشده همچنان stable، beta و dev هستند.
برای معنای کانالها، کانالهای توسعه را ببینید.
جابهجایی بین نصبهای npm و git
وقتی میخواهید نوع نصب را تغییر دهید، از کانالها استفاده کنید. بهروزرساننده
وضعیت، پیکربندی، گواهینامهها و workspace شما را در ~/.openclaw نگه میدارد؛ فقط تغییر میدهد
که CLI و Gateway از کدام نصب کد OpenClaw استفاده کنند.
# npm package install -> editable git checkout
openclaw update --channel dev
# git checkout -> npm package install
openclaw update --channel stable
ابتدا با --dry-run اجرا کنید تا جابهجایی دقیق حالت نصب را پیشنمایش کنید:
openclaw update --channel dev --dry-run
openclaw update --channel stable --dry-run
کانال dev یک checkout از git را تضمین میکند، آن را میسازد و CLI سراسری را
از همان checkout نصب میکند. کانالهای stable و beta از نصبهای بسته استفاده میکنند. اگر
Gateway از قبل نصب شده باشد، openclaw update فراداده سرویس را تازهسازی میکند
و آن را دوباره راهاندازی میکند، مگر اینکه --no-restart را بگذرانید.
جایگزین: اجرای دوباره نصبکننده
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 در حال اجرا هماهنگ کند. اگر هنگام اجرای یک
Gateway مدیریتشده، دستی بهروزرسانی میکنید، بلافاصله پس از پایان کار مدیر بسته
Gateway را دوباره راهاندازی کنید تا فرایند قدیمی از فایلهای بسته جایگزینشده
به سرویسدهی ادامه ندهد.
وقتی openclaw update یک نصب npm سراسری را مدیریت میکند، ابتدا هدف را در
یک prefix موقت npm نصب میکند، inventory بستهبندیشده dist را راستیآزمایی میکند، سپس
درخت بسته تمیز را به prefix سراسری واقعی جابهجا میکند. این کار مانع میشود npm
یک بسته جدید را روی فایلهای کهنه بسته قدیمی همپوشانی کند. اگر فرمان نصب شکست بخورد،
OpenClaw یک بار با --omit=optional دوباره تلاش میکند. آن تلاش دوباره به میزبانهایی کمک میکند که در آنها
وابستگیهای اختیاری native نمیتوانند کامپایل شوند، در حالی که اگر fallback هم شکست بخورد،
خرابی اصلی همچنان قابل مشاهده میماند.
pnpm add -g openclaw@latest
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 بتوانند تغییراتشان را پایدار کنند:
ReadWritePaths=/var/lib/openclaw /home/openclaw/.openclaw /tmp
پیشپرواز فضای دیسک
پیش از بهروزرسانیهای بسته و نصبهای صریح Plugin، OpenClaw یک بررسی فضای دیسک best-effort برای volume هدف را امتحان میکند. فضای کم یک هشدار همراه با مسیر بررسیشده تولید میکند، اما بهروزرسانی را مسدود نمیکند، چون quotaهای فایلسیستم، snapshotها و volumeهای شبکه میتوانند پس از بررسی تغییر کنند. نصب واقعی مدیر بسته و راستیآزمایی پس از نصب همچنان مرجع نهایی هستند.
بهروزرساننده خودکار
بهروزرساننده خودکار بهصورت پیشفرض خاموش است. آن را در ~/.openclaw/openclaw.json فعال کنید:
{
update: {
channel: "stable",
auto: {
enabled: true,
stableDelayHours: 6,
stableJitterHours: 12,
betaCheckIntervalHours: 1,
},
},
}
| کانال | رفتار |
|---|---|
stable |
به اندازه stableDelayHours صبر میکند، سپس با jitter قطعی در سراسر stableJitterHours اعمال میکند (rollout پخششده). |
beta |
هر betaCheckIntervalHours بررسی میکند (پیشفرض: ساعتی) و بلافاصله اعمال میکند. |
dev |
اعمال خودکار ندارد. openclaw update را دستی استفاده کنید. |
Gateway همچنین هنگام راهاندازی یک راهنمای بهروزرسانی در log ثبت میکند (با update.checkOnStart: false غیرفعال کنید).
برای downgrade یا بازیابی حادثه، OPENCLAW_NO_AUTO_UPDATE=1 را در محیط Gateway تنظیم کنید تا اعمال خودکار حتی وقتی update.auto.enabled پیکربندی شده است مسدود شود. راهنمای بهروزرسانی هنگام راهاندازی همچنان میتواند اجرا شود، مگر اینکه update.checkOnStart هم غیرفعال شده باشد.
بهروزرسانیهای مدیر بسته که از طریق handler زنده control-plane در Gateway درخواست میشوند،
پس از جابهجایی بسته، یک راهاندازی دوباره بهروزرسانی بدون تعویق و بدون cooldown را اجبار میکنند. این کار
از باقیماندن یک فرایند قدیمی در حافظه بهاندازهای طولانی که chunkها را بهصورت lazy-load
از درخت بستهای که قبلا جایگزین شده است بارگذاری کند جلوگیری میکند. فرمان shell یعنی openclaw update
همچنان مسیر ترجیحی برای نصبهای تحتنظارت است، چون میتواند سرویس را اطراف بهروزرسانی متوقف و
دوباره راهاندازی کند.
پس از بهروزرسانی
اجرای doctor
openclaw doctor
پیکربندی را مهاجرت میدهد، سیاستهای DM را audit میکند و سلامت Gateway را بررسی میکند. جزئیات: Doctor
راهاندازی دوباره Gateway
openclaw gateway restart
راستیآزمایی
openclaw health
Rollback
سنجاقکردن یک نسخه (npm)
npm i -g openclaw@<version>
openclaw doctor
openclaw gateway restart
سنجاقکردن یک commit (source)
git fetch origin
git checkout "$(git rev-list -n 1 --before=\"2026-01-01\" origin/main)"
pnpm install && pnpm build
openclaw 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: بررسیهای سلامت پس از بهروزرسانی.
- مهاجرت: راهنماهای مهاجرت نسخه اصلی.