Maintenance

به‌روزرسانی

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

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

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

نوع نصب شما (npm یا 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 تگ توزیع 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 را تغییر می‌دهد.

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

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

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

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 بازیابی را به نسخه یا تگ توزیع مشخصی مقید کنید:

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

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

bash
pnpm add -g openclaw@latest
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,      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

bash
openclaw doctor

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

راه‌اندازی مجدد Gateway

bash
openclaw gateway restart

تأیید

bash
openclaw health

بازگردانی

پین‌کردن یک نسخه (npm)

bash
npm i -g openclaw@<version>openclaw doctoropenclaw gateway restart

پین‌کردن یک commit (منبع)

bash
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

مرتبط

Was this useful?
On this page

On this page