docs/docs/fa/cli/update.md
2026-05-05 01:56:58 +00:00

16 KiB
Raw Blame History

read_when summary title x-i18n
می‌خواهید یک checkout کد منبع را به‌صورت ایمن به‌روزرسانی کنید
در حال اشکال‌زدایی خروجی یا گزینه‌های `openclaw update` هستید
باید رفتار اختصاری `--update` را درک کنید
مرجع CLI برای `openclaw update` (به‌روزرسانی نسبتاً امن منبع + راه‌اندازی مجدد خودکار Gateway) به‌روزرسانی
generated_at model provider source_hash source_path workflow
2026-05-05T01:45:09Z gpt-5.5 openai b12b1837ae80a3688fb7805d78d5a354f07dccdaba175cfa429e18145e543a1f cli/update.md 16

openclaw update

OpenClaw را با ایمنی به‌روزرسانی کنید و بین کانال‌های پایدار/بتا/توسعه جابه‌جا شوید.

اگر از طریق npm/pnpm/bun نصب کرده‌اید (نصب سراسری، بدون فرادادهٔ git)، به‌روزرسانی‌ها از طریق جریان مدیر بسته در به‌روزرسانی انجام می‌شوند.

کاربرد

openclaw update
openclaw update status
openclaw update wizard
openclaw update --channel beta
openclaw update --channel dev
openclaw update --tag beta
openclaw update --tag main
openclaw update --dry-run
openclaw update --no-restart
openclaw update --yes
openclaw update --json
openclaw --update

گزینه‌ها

  • --no-restart: پس از به‌روزرسانی موفق، از راه‌اندازی دوبارهٔ سرویس Gateway صرف‌نظر می‌کند. به‌روزرسانی‌های مدیر بسته که Gateway را دوباره راه‌اندازی می‌کنند، پیش از موفق شدن دستور، بررسی می‌کنند که سرویس راه‌اندازی‌شدهٔ دوباره نسخهٔ به‌روزرسانی‌شدهٔ مورد انتظار را گزارش می‌کند.
  • --channel <stable|beta|dev>: کانال به‌روزرسانی را تنظیم می‌کند (git + npm؛ در پیکربندی ماندگار می‌شود).
  • --tag <dist-tag|version|spec>: هدف بسته را فقط برای این به‌روزرسانی بازنویسی می‌کند. برای نصب‌های بسته‌ای، main به github:openclaw/openclaw#main نگاشت می‌شود.
  • --dry-run: اقدام‌های برنامه‌ریزی‌شدهٔ به‌روزرسانی (جریان کانال/تگ/هدف/راه‌اندازی دوباره) را بدون نوشتن پیکربندی، نصب، همگام‌سازی Pluginها، یا راه‌اندازی دوباره پیش‌نمایش می‌کند.
  • --json: JSON قابل‌خواندن برای ماشینِ UpdateRunResult را چاپ می‌کند، شامل postUpdate.plugins.integrityDrifts وقتی در همگام‌سازی Plugin پس از به‌روزرسانی، انحراف آرتیفکت npm Plugin شناسایی شود.
  • --timeout <seconds>: مهلت زمانی برای هر مرحله (پیش‌فرض 1800s است).
  • --yes: اعلان‌های تأیید را رد می‌کند (برای مثال تأیید بازگشت به نسخهٔ قدیمی‌تر).

openclaw update پرچم --verbose ندارد. از --dry-run برای پیش‌نمایش اقدام‌های برنامه‌ریزی‌شدهٔ کانال/تگ/نصب/راه‌اندازی دوباره، از --json برای نتایج قابل‌خواندن برای ماشین، و از openclaw update status --json وقتی فقط به جزئیات کانال و دسترس‌پذیری نیاز دارید استفاده کنید. اگر در حال اشکال‌زدایی گزارش‌های Gateway پیرامون یک به‌روزرسانی هستید، پرجزئیاتی کنسول و سطح گزارش فایل جدا هستند: --verbose در Gateway بر خروجی ترمینال/WebSocket اثر می‌گذارد، در حالی که گزارش‌های فایل به logging.level: "debug" یا "trace" در پیکربندی نیاز دارند. گزارش‌گیری Gateway را ببینید.

بازگشت به نسخه‌های قدیمی‌تر به تأیید نیاز دارد، زیرا نسخه‌های قدیمی‌تر می‌توانند پیکربندی را خراب کنند.

update status

کانال به‌روزرسانی فعال + تگ/شاخه/SHA git (برای checkoutهای منبع)، به‌همراه دسترس‌پذیری به‌روزرسانی را نشان می‌دهد.

openclaw update status
openclaw update status --json
openclaw update status --timeout 10

گزینه‌ها:

  • --json: JSON وضعیت قابل‌خواندن برای ماشین را چاپ می‌کند.
  • --timeout <seconds>: مهلت زمانی برای بررسی‌ها (پیش‌فرض 3s است).

update wizard

جریان تعاملی برای انتخاب کانال به‌روزرسانی و تأیید اینکه آیا پس از به‌روزرسانی Gateway دوباره راه‌اندازی شود یا نه (پیش‌فرض راه‌اندازی دوباره است). اگر dev را بدون checkout git انتخاب کنید، پیشنهاد می‌دهد یکی ایجاد کند.

گزینه‌ها:

  • --timeout <seconds>: مهلت زمانی برای هر مرحلهٔ به‌روزرسانی (پیش‌فرض 1800)

کاری که انجام می‌دهد

وقتی کانال‌ها را به‌صورت صریح عوض می‌کنید (--channel ...)، OpenClaw روش نصب را نیز هم‌راستا نگه می‌دارد:

  • dev → وجود checkout git را تضمین می‌کند (پیش‌فرض: ~/openclaw، قابل بازنویسی با OPENCLAW_GIT_DIR)، آن را به‌روزرسانی می‌کند و CLI سراسری را از همان checkout نصب می‌کند.
  • stable → با استفاده از latest از npm نصب می‌کند.
  • beta → برچسب توزیع npm با نام beta را ترجیح می‌دهد، اما وقتی بتا وجود ندارد یا از انتشار پایدار فعلی قدیمی‌تر است، به latest برمی‌گردد.

به‌روزرسان خودکار هستهٔ Gateway (وقتی از طریق پیکربندی فعال باشد) مسیر به‌روزرسانی CLI را بیرون از کنترل‌کنندهٔ درخواست زندهٔ Gateway اجرا می‌کند. به‌روزرسانی‌های مدیر بستهٔ update.run در صفحهٔ کنترل، پس از تعویض بسته، یک راه‌اندازی دوبارهٔ به‌روزرسانیِ بدون تعویق و بدون دورهٔ خنک‌سازی را اجباری می‌کنند، زیرا فرایند قدیمی Gateway ممکن است هنوز قطعه‌های درون‌حافظه‌ای داشته باشد که به فایل‌های حذف‌شده توسط بستهٔ جدید اشاره می‌کنند.

برای نصب‌های مدیر بسته، openclaw update پیش از فراخوانی مدیر بسته، نسخهٔ بستهٔ هدف را حل می‌کند. نصب‌های سراسری npm از نصب مرحله‌ای استفاده می‌کنند: OpenClaw بستهٔ جدید را در یک پیشوند موقت npm نصب می‌کند، موجودی dist بسته‌بندی‌شده را آنجا بررسی می‌کند، سپس آن درخت بستهٔ پاک را به پیشوند سراسری واقعی تعویض می‌کند. اگر بررسی شکست بخورد، doctor پس از به‌روزرسانی، همگام‌سازی Plugin، و کار راه‌اندازی دوباره از درخت مشکوک اجرا نمی‌شوند. حتی وقتی نسخهٔ نصب‌شده از قبل با هدف مطابقت دارد، دستور نصب بستهٔ سراسری را تازه‌سازی می‌کند، سپس همگام‌سازی Plugin، تازه‌سازی تکمیل فرمان هسته، و کار راه‌اندازی دوباره را اجرا می‌کند. این کار sidecarهای بسته‌بندی‌شده و رکوردهای Plugin متعلق به کانال را با build نصب‌شدهٔ OpenClaw هم‌راستا نگه می‌دارد و بازسازی‌های کامل تکمیل فرمان Plugin را به اجراهای صریح openclaw completion --write-state واگذار می‌کند.

وقتی یک سرویس Gateway مدیریت‌شدهٔ محلی نصب شده و راه‌اندازی دوباره فعال است، به‌روزرسانی‌های مدیر بسته پیش از جایگزینی درخت بسته، سرویس در حال اجرا را متوقف می‌کنند، سپس فرادادهٔ سرویس را از نصب به‌روزرسانی‌شده تازه‌سازی می‌کنند، سرویس را دوباره راه‌اندازی می‌کنند و پیش از گزارش موفقیت بررسی می‌کنند که Gateway راه‌اندازی‌شدهٔ دوباره نسخهٔ مورد انتظار را گزارش می‌کند. در macOS، بررسی پس از به‌روزرسانی همچنین بررسی می‌کند که LaunchAgent برای نمایهٔ فعال بارگذاری/در حال اجرا است و درگاه loopback پیکربندی‌شده سالم است. اگر plist نصب شده اما launchd آن را تحت نظارت ندارد، OpenClaw LaunchAgent را به‌صورت خودکار دوباره bootstrap می‌کند، سپس بررسی‌های آمادگی سلامت/نسخه/کانال را دوباره اجرا می‌کند. یک bootstrap تازه job مربوط به RunAtLoad را مستقیم بارگذاری می‌کند، بنابراین بازیابی به‌روزرسانی بلافاصله Gateway تازه ایجادشده را kickstart -k نمی‌کند. اگر Gateway همچنان سالم نشود، دستور با وضعیت غیرصفر خارج می‌شود و مسیر گزارش راه‌اندازی دوباره به‌علاوهٔ دستورالعمل‌های صریح راه‌اندازی دوباره، نصب دوباره، و بازگردانی بسته را چاپ می‌کند. با --no-restart، جایگزینی بسته همچنان اجرا می‌شود اما سرویس مدیریت‌شده متوقف یا دوباره راه‌اندازی نمی‌شود، بنابراین Gateway در حال اجرا ممکن است تا زمانی که آن را دستی دوباره راه‌اندازی کنید، کد قدیمی را نگه دارد.

جریان checkout git

انتخاب کانال

  • stable: جدیدترین تگ غیر بتا را checkout می‌کند، سپس build و doctor را اجرا می‌کند.
  • beta: جدیدترین تگ -beta را ترجیح می‌دهد، اما وقتی بتا وجود ندارد یا قدیمی‌تر است، به جدیدترین تگ پایدار برمی‌گردد.
  • dev: main را checkout می‌کند، سپس fetch و rebase می‌کند.

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

نیازمند نبود تغییرات commitنشده است. به کانال انتخاب‌شده (تگ یا شاخه) تغییر می‌کند. فقط توسعه. lint و build TypeScript را در یک worktree موقت اجرا می‌کند. اگر نوک شاخه شکست بخورد، تا 10 commit به عقب برمی‌گردد تا جدیدترین build پاک را پیدا کند. روی commit انتخاب‌شده rebase می‌کند (فقط توسعه). از مدیر بستهٔ repo استفاده می‌کند. برای checkoutهای pnpm، به‌روزرسان `pnpm` را در صورت نیاز bootstrap می‌کند (ابتدا از طریق `corepack`، سپس با fallback موقت `npm install pnpm@10`) به‌جای اینکه `npm run build` را داخل یک workspace pnpm اجرا کند. gateway و Control UI را build می‌کند. `openclaw doctor` به‌عنوان بررسی نهایی به‌روزرسانی امن اجرا می‌شود. Pluginها را با کانال فعال همگام می‌کند. توسعه از Pluginهای bundled استفاده می‌کند؛ پایدار و بتا از npm استفاده می‌کنند. نصب‌های Plugin ردیابی‌شده را به‌روزرسانی می‌کند.

در کانال به‌روزرسانی بتا، نصب‌های npm و ClawHub Plugin ردیابی‌شده که خط پیش‌فرض/latest را دنبال می‌کنند، ابتدا یک انتشار @beta Plugin را امتحان می‌کنند. اگر Plugin انتشار بتا نداشته باشد، OpenClaw به spec پیش‌فرض/latest ثبت‌شده برمی‌گردد. برای npm Pluginها، OpenClaw همچنین وقتی بستهٔ بتا وجود دارد اما بررسی نصب آن شکست می‌خورد به عقب برمی‌گردد. نسخه‌های دقیق و تگ‌های صریح بازنویسی نمی‌شوند.

اگر یک به‌روزرسانی دقیقاً pinشدهٔ npm Plugin به آرتیفکتی حل شود که یکپارچگی آن با رکورد نصب ذخیره‌شده فرق دارد، `openclaw update` به‌جای نصب آن، به‌روزرسانی آرتیفکت Plugin را متوقف می‌کند. فقط پس از اینکه بررسی کردید به آرتیفکت جدید اعتماد دارید، Plugin را دوباره نصب یا صریحاً به‌روزرسانی کنید. شکست‌های همگام‌سازی Plugin پس از به‌روزرسانی نتیجهٔ به‌روزرسانی را ناموفق می‌کنند و کار پیگیری راه‌اندازی دوباره را متوقف می‌کنند. خطای نصب یا به‌روزرسانی Plugin را رفع کنید، سپس `openclaw update` را دوباره اجرا کنید.

وقتی Gateway به‌روزرسانی‌شده شروع به کار می‌کند، بارگذاری Plugin فقط بررسی است: راه‌اندازی، مدیرهای بسته را اجرا نمی‌کند و درخت‌های وابستگی را تغییر نمی‌دهد. راه‌اندازی‌های دوبارهٔ update.run مدیر بسته پس از تعویض درخت بسته، تعویق عادی زمان بیکاری و دورهٔ خنک‌سازی راه‌اندازی دوباره را دور می‌زنند، بنابراین فرایند قدیمی نمی‌تواند به lazy-loading قطعه‌های حذف‌شده ادامه دهد.

اگر bootstrap مربوط به pnpm همچنان شکست بخورد، به‌روزرسان به‌جای تلاش برای اجرای npm run build داخل checkout، زودتر با یک خطای ویژهٔ مدیر بسته متوقف می‌شود.

خلاصه‌نویسی --update

openclaw --update به openclaw update بازنویسی می‌شود (برای shellها و اسکریپت‌های اجراکننده مفید است).

مرتبط