---
read_when:
    - به‌روزرسانی OpenClaw
    - پس از به‌روزرسانی چیزی از کار می‌افتد
summary: به‌روزرسانی ایمن OpenClaw (نصب سراسری یا از کد منبع)، به‌همراه راهبرد بازگردانی
title: در حال به‌روزرسانی
x-i18n:
    generated_at: "2026-07-27T14:17:13Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 32
    provider: openai
    source_hash: 83444d56e0aa34f47830610538b0c3012903abb812bfe0fffb8163a5db9ac2db
    source_path: install/updating.md
    workflow: 16
---

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

برای جایگزینی ایمیج‌های Docker، Podman و Kubernetes، به
[ارتقای ایمیج‌های کانتینر](/fa/install/docker#upgrading-container-images) مراجعه کنید. Gateway
پیش از آماده‌شدن، عملیات ارتقای ایمن برای راه‌اندازی را اجرا می‌کند و اگر وضعیت
mount‌شده به ترمیم دستی نیاز داشته باشد، خارج می‌شود.

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

نوع نصب شما (npm، pnpm، Bun یا git) را تشخیص می‌دهد، جدیدترین نسخه را دریافت می‌کند، `openclaw doctor` را اجرا می‌کند و Gateway را مجدداً راه‌اندازی می‌کند.

```bash
openclaw update
```

کانال‌ها را تغییر دهید یا نسخه مشخصی را هدف قرار دهید:

```bash
openclaw update --channel beta
openclaw update --channel extended-stable
openclaw update --channel dev
openclaw update --dry-run   # پیش‌نمایش بدون اعمال
```

`openclaw update` پرچم `--verbose` ندارد (نصب‌کننده دارد). برای عیب‌یابی، از
`--dry-run` برای پیش‌نمایش اقدامات برنامه‌ریزی‌شده، از `--json` برای نتایج ساختاریافته، یا از
`openclaw update status --json` برای بررسی وضعیت کانال و دسترس‌پذیری استفاده کنید.

`--channel beta`، dist-tag بتای npm را ترجیح می‌دهد، اما وقتی تگ بتا وجود نداشته باشد یا نسخه آن از جدیدترین
انتشار پایدار قدیمی‌تر باشد، به stable/latest برمی‌گردد. در عوض، برای یک به‌روزرسانی یک‌باره بسته که مستقیماً به
dist-tag خام بتای npm سنجاق شده است، از `--tag beta` استفاده کنید.

`--channel extended-stable` فقط برای بسته است و نصب همچنان
فقط در پیش‌زمینه انجام می‌شود. OpenClaw انتخاب‌گر عمومی npm یعنی `extended-stable` را می‌خواند،
بسته دقیق انتخاب‌شده را تأیید می‌کند و همان نسخه دقیق را نصب می‌کند. نبود یا ناسازگاری
داده‌های رجیستری باعث توقف ایمن می‌شود؛ هرگز به `latest` برنمی‌گردد.
اگر نسخه انتخاب‌شده از نسخه نصب‌شده قدیمی‌تر باشد، تأیید عادی
تنزل نسخه همچنان اعمال می‌شود. CLI پس از
به‌روزرسانی موفق هسته، کانال را ماندگار می‌کند؛ اجرای مستقیم `npm install -g openclaw@extended-stable`
مقدار `update.channel` را به‌روزرسانی نمی‌کند.
پس از تعویض هسته، Pluginهای رسمی واجد شرایط npm با قصد bare/default یا
`latest` به همان نسخه دقیق هسته همگرا می‌شوند. سنجاق‌های دقیق و تگ‌های صریح
غیر `latest`، Pluginهای شخص ثالث و منابع غیر npm بدون تغییر باقی می‌مانند.
نصب‌های کاتالوگی ایجادشده با نسخه‌های فعلی OpenClaw، همان قصد پیش‌فرض را
حفظ می‌کنند. رکوردهای قدیمی‌تر که فقط حاوی یک نسخه دقیق هستند، سنجاق‌شده باقی می‌مانند، زیرا
OpenClaw نمی‌تواند با اطمینان یک سنجاق خودکار قدیمی را از سنجاق کاربر تشخیص دهد؛
`openclaw plugins update @openclaw/name` را یک‌بار در کانال extended-stable اجرا کنید
تا آن Plugin دوباره ردیابی دقیق هسته را دنبال کند.

`--channel dev` یک checkout متحرک و ماندگار GitHub از `main` فراهم می‌کند. برای یک
به‌روزرسانی یک‌باره بسته، `--tag main` به مشخصه بسته
`github:openclaw/openclaw#main` نگاشت می‌شود و آن را مستقیماً از طریق مدیر بسته مقصد (npm/pnpm/bun) نصب می‌کند.

برای Pluginهای مدیریت‌شده، نبود انتشار بتا یک هشدار است، نه خطا:
به‌روزرسانی هسته همچنان می‌تواند موفق شود، درحالی‌که Plugin به
انتشار پیش‌فرض/latest ثبت‌شده خود برمی‌گردد.

برای معنای کانال‌ها، به [کانال‌های انتشار](/fa/install/development-channels) مراجعه کنید.

## جابه‌جایی میان نصب‌های npm و git

برای تغییر نوع نصب از کانال‌ها استفاده کنید. به‌روزرسان، وضعیت، پیکربندی،
اطلاعات احراز هویت و فضای کاری شما را در `~/.openclaw` حفظ می‌کند؛ فقط مشخص می‌کند CLI و Gateway از کدام
نصب کد OpenClaw استفاده کنند.

```bash
# نصب بسته npm -> checkout قابل‌ویرایش git
openclaw update --channel dev

# checkout گیت -> نصب بسته npm
openclaw update --channel stable
```

ابتدا تغییر حالت نصب را پیش‌نمایش کنید:

```bash
openclaw update --channel dev --dry-run
openclaw update --channel stable --dry-run
```

`dev` وجود یک checkout گیت را تضمین می‌کند، آن را build می‌کند و CLI سراسری را از همان
checkout نصب می‌کند. کانال‌های `stable`، `extended-stable` و `beta` از نصب
بسته استفاده می‌کنند. extended-stable در یک checkout گیت، بدون تغییر یا
تبدیل آن، رد می‌شود. اگر Gateway از قبل نصب شده باشد، `openclaw update`
فراداده سرویس را تازه‌سازی و آن را مجدداً راه‌اندازی می‌کند، مگر اینکه `--no-restart` را ارسال کنید.

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

## سرورهای checkout منبع (اسکریپت مرجع)

تیم‌هایی که Gateway را مستقیماً از یک checkout گیت روی سرور اجرا می‌کنند، می‌توانند آن را
از داخل همان checkout با `scripts/update-gateway.sh` به‌روزرسانی کنند. این اسکریپت، مرجع
به‌روزرسانی کارآمد سرور منبع است: خروجی‌های build ردیابی‌شده‌ای را که
`pnpm build` بازنویسی می‌کند بازیابی می‌کند، در صورت وجود هر تغییر محلی دیگری با توقف ایمن مواجه می‌شود،
`main` را fast-forward می‌کند (یا شاخه محلی سرور را روی `origin/main` rebase می‌کند)، وابستگی‌ها را
نصب می‌کند، build تمیزی می‌سازد و Gateway را مجدداً راه‌اندازی می‌کند.

```bash
ssh you@server 'cd /path/to/openclaw && scripts/update-gateway.sh'
```

برای واحدهای سرویس سفارشی، فرمان راه‌اندازی مجدد را بازنویسی کنید یا آن را کاملاً رد کنید:

```bash
OPENCLAW_UPDATE_RESTART_CMD='systemctl --user restart openclaw-gateway.service' scripts/update-gateway.sh
OPENCLAW_UPDATE_RESTART_CMD='' scripts/update-gateway.sh
```

برای یک نصب منبع ساده تک‌کاربره، به‌جای آن `openclaw update --channel dev` را ترجیح دهید
— این فرمان checkout، build و راه‌اندازی مجدد Gateway را برای شما مدیریت می‌کند.

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

```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` به یک نسخه یا dist-tag مشخص سنجاق کنید:

```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 stop
sudo /usr/bin/npm i -g openclaw@latest
openclaw gateway install --force
openclaw gateway restart
```

سپس تأیید کنید:

```bash
openclaw --version
curl -fsS http://127.0.0.1:18789/readyz
openclaw plugins list --json
openclaw gateway status --deep --json
openclaw doctor --lint --json
```

وقتی `openclaw update` یک نصب سراسری npm را مدیریت می‌کند، ابتدا مقصد را
در یک پیشوند موقت npm نصب می‌کند. بسته نامزد، نسخه Node میزبان را هنگام
`preinstall` اعتبارسنجی می‌کند؛ تنها پس از آن OpenClaw موجودی بسته‌بندی‌شده
`dist` را تأیید می‌کند و درخت بسته تمیز را با پیشوند سراسری واقعی جابه‌جا می‌کند. یک
محافظ تکمیل بسته‌بندی‌شده از موجودی موردانتظار کنار گذاشته می‌شود و تنها پس از موفقیت
`preinstall` حذف می‌شود؛ بنابراین ردشدن اسکریپت‌های چرخه‌عمر نیز پیش از
تعویض باعث شکست می‌شود. در npm 12 و جدیدتر، به‌روزرسان فقط چرخه‌عمر OpenClaw نامزد را
تأیید می‌کند؛ اسکریپت‌های وابستگی‌های ترایایی همچنان مسدود می‌مانند. این کار از
روی‌هم‌نویسی بسته جدید توسط npm روی فایل‌های کهنه بسته قبلی جلوگیری می‌کند. اگر فرمان
نصب ناموفق شود، OpenClaw یک‌بار دیگر با `--omit=optional` تلاش می‌کند که به میزبان‌هایی
کمک می‌کند که وابستگی‌های اختیاری بومی در آن‌ها قابل کامپایل نیستند.

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

```bash
pnpm add -g openclaw@latest
```

اگر pnpm 11 نسخه OpenClaw 2026.7.1 را نصب کرده است، آن فرمان دستی را یک‌بار اجرا کنید. آن
انتشار پیش از چیدمان ایزوله بسته‌های سراسری pnpm 11 منتشر شده است، بنابراین به‌روزرسان آن ممکن است
نصب npm دیگری را با CLI درحال‌اجرا اشتباه بگیرد. انتشارهای بعدی مالکیت
pnpm را حفظ می‌کنند و هنگام به‌روزرسانی‌ها ریشه بسته جایگزین را دنبال می‌کنند. آن‌ها همچنین
از دایرکتوری bin سراسری گزارش‌شده مدیر مالک استفاده می‌کنند و زمانی که
فرمان pnpm موجود، ریشه یا نسخه اصلی سراسری دیگری را گزارش کند، یا بسته فراخواننده یتیم باشد یا
تنها نصب فعال OpenClaw در آنجا نباشد، پیش از هرگونه تغییر متوقف می‌شوند.

اگر OpenClaw یک گروه نصب سراسری pnpm 11 را با بسته دیگری به‌اشتراک بگذارد،
به‌روزرسان خودکار پیش از تغییر گروه متوقف می‌شود. گروه اصلی
جداشده با ویرگول را به‌صورت دستی به‌روزرسانی کنید تا بسته‌های هم‌گروه و سیاست build آن
دست‌نخورده باقی بمانند.

```bash
bun add -g openclaw@latest
```

### مباحث پیشرفته نصب npm

<AccordionGroup>
  <Accordion title="درخت بسته فقط‌خواندنی">
    OpenClaw نصب‌های سراسری بسته‌بندی‌شده را هنگام اجرا فقط‌خواندنی در نظر می‌گیرد، حتی زمانی که دایرکتوری سراسری بسته برای کاربر فعلی قابل‌نوشتن باشد. نصب بسته‌های Plugin در ریشه‌های npm/git تحت مالکیت OpenClaw در دایرکتوری پیکربندی کاربر قرار می‌گیرند و راه‌اندازی Gateway درخت بسته OpenClaw را تغییر نمی‌دهد.

    برخی تنظیمات npm در Linux، بسته‌های سراسری را در دایرکتوری‌های تحت مالکیت root مانند `/usr/lib/node_modules/openclaw` نصب می‌کنند. OpenClaw از این چیدمان پشتیبانی می‌کند، زیرا فرمان‌های نصب/به‌روزرسانی Plugin خارج از آن دایرکتوری سراسری بسته می‌نویسند.

  </Accordion>
  <Accordion title="واحدهای systemd سخت‌سازی‌شده">
    به OpenClaw اجازه نوشتن در ریشه‌های پیکربندی/وضعیت خود را بدهید تا نصب‌های صریح Plugin، به‌روزرسانی‌های Plugin و پاک‌سازی doctor بتوانند تغییراتشان را ماندگار کنند:

    ```ini
    ReadWritePaths=/var/lib/openclaw /home/openclaw/.openclaw /tmp
    ```

  </Accordion>
  <Accordion title="بررسی اولیه فضای دیسک">
    پیش از به‌روزرسانی بسته‌ها و نصب‌های صریح Plugin، OpenClaw در حد امکان فضای دیسک حجم مقصد را بررسی می‌کند. فضای کم هشداری همراه با مسیر بررسی‌شده ایجاد می‌کند، اما به‌روزرسانی را مسدود نمی‌کند، زیرا سهمیه‌های فایل‌سیستم، snapshotها و حجم‌های شبکه می‌توانند پس از بررسی تغییر کنند. نصب واقعی مدیر بسته و تأیید پس از نصب همچنان مرجع نهایی هستند.
  </Accordion>
</AccordionGroup>

## به‌روزرسان خودکار

به‌طور پیش‌فرض خاموش است. آن را در `~/.openclaw/openclaw.json` فعال کنید:

```json5
{
  update: {
    channel: "stable",
    auto: {
      enabled: true,
    },
  },
}
```

| کانال             | رفتار                                                                                                                          |
| ----------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| `stable`          | پس از یک تأخیر داخلی با نوسان قطعی برای انتشار تدریجی اعمال می‌شود.                                                           |
| `extended-stable` | هنگام راه‌اندازی و هر 24 ساعت، وقتی `checkOnStart` فعال است، وجود راهنمای به‌روزرسانی فقط‌خواندنی را بررسی می‌کند. هرگز به‌طور خودکار اعمال نمی‌شود. |
| `beta`            | در یک بازه داخلی بررسی می‌کند و بلافاصله اعمال می‌شود.                                                                         |
| `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` به‌جای اجرای مدیر بسته
درون فرایند، یک فرمان پوستهٔ ایمن گزارش می‌کند.

کارت به‌روزرسانی نوار کناری Control UI، زمانی که قرار است
این جریان `update.run` را مستقیماً آغاز کند، **به‌روزرسانی Gateway** را نشان می‌دهد. این مورد Control UI میزبانی‌شده در مرورگر، Gatewayهای راه دور
و Gatewayهای محلی با مدیریت دستی را پوشش می‌دهد.

در برنامهٔ امضاشدهٔ macOS، یک Gateway محلی متعلق به برنامه، آن کارت را به
**به‌روزرسانی برنامهٔ Mac + Gateway** تغییر می‌دهد. Sparkle ابتدا برنامه را به‌روزرسانی می‌کند؛ پس از اجرای مجدد،
برنامه `openclaw update --tag <app-version> --json` را اجرا می‌کند، Gateway خود را دوباره راه‌اندازی می‌کند
و سلامت را در یک پنجرهٔ پیشرفت به سبک راه‌اندازی تأیید می‌کند. این پنجره فقط زمانی ظاهر می‌شود
که آن Gateway مدیریت‌شده به به‌روزرسانی، تعمیر یا نصب نیاز داشته باشد؛ به‌روزرسانی‌های صرفاً مربوط به برنامه
مستقیماً برنامه را دوباره اجرا می‌کنند. جزئیات خرابی همراه با اقدامات Retry، [راهنمای به‌روزرسانی](/fa/install/updating) و
[Discord](https://discord.gg/clawd) قابل مشاهده باقی می‌مانند. برنامه هرگز از این مسیر هماهنگ‌شده
برای Gateway راه دور یا دارای مدیریت خارجی استفاده نمی‌کند، هرگز Gateway جدیدتر را به نسخهٔ قبلی
بازنمی‌گرداند و هرگز پین کانال `extended-stable` را نادیده نمی‌گیرد.

وقتی به‌روزرسانی موفق می‌شود، برنامه یک رویداد خوشامدگویی یک‌باره برای
جدیدترین نشست مستقیم سطح‌بالا که تعامل واقعی کاربر/کانال دارد، در صف قرار می‌دهد. اجراهای Cron،
Heartbeatها و به‌روزرسانی‌های نشستِ صرفاً پس‌زمینه، این انتخاب را تغییر نمی‌دهند. در
حالت راه دور، برنامه فقط زمان اجرای Node محلی Mac خود را به‌روزرسانی می‌کند و رویداد را
تنها زمانی می‌فرستد که Gateway راه دور متصل، دست‌کم به‌اندازهٔ برنامه جدید باشد.

## پس از به‌روزرسانی

<Steps>

### doctor را اجرا کنید

```bash
openclaw doctor
```

پیکربندی را مهاجرت می‌دهد، خط‌مشی‌های DM را ممیزی می‌کند و سلامت Gateway را بررسی می‌کند. جزئیات: [Doctor](/fa/gateway/doctor)

### Gateway را دوباره راه‌اندازی کنید

```bash
openclaw gateway restart
```

### تأیید کنید

```bash
openclaw health
```

</Steps>

## بازگشت به نسخهٔ قبلی

بازگشت به نسخهٔ قبلی دو لایه دارد:

1. کد قدیمی‌تر OpenClaw را با حفظ وضعیت فعلی دوباره نصب کنید.
2. فقط زمانی وضعیت پیش از به‌روزرسانی را بازیابی کنید که کد قدیمی‌تر نتواند از یک
   پیکربندی یا پایگاه دادهٔ مهاجرت‌یافته استفاده کند.

با بازگشت فقط کد شروع کنید. بازیابی وضعیت، تغییرات ایجادشده پس از
نسخهٔ پشتیبان را حذف می‌کند.

### پیش از به‌روزرسانی: یک نسخهٔ پشتیبان تأییدشده ایجاد کنید

`openclaw update` یک کپی خودکار از پیکربندی پیش از به‌روزرسانی را حفظ می‌کند، اما
یک نقطهٔ بازیابی کامل وضعیت ایجاد نمی‌کند. پیش از یک به‌روزرسانی مهم، آن را
صریحاً ایجاد کنید:

```bash
mkdir -p ~/Backups/openclaw
openclaw backup create --output ~/Backups/openclaw --verify
```

مانیفست بایگانی، نسخهٔ OpenClaw و مسیرهای مبدأ گنجانده‌شده
در نسخهٔ پشتیبان را ثبت می‌کند. بایگانی می‌تواند شامل اعتبارنامه‌ها، نمایه‌های احراز هویت و وضعیت
کانال باشد؛ بنابراین آن را با مجوزهای مختص مالک و همان سطح حفاظت
دایرکتوری وضعیت زنده نگهداری کنید. برای فایل‌های گنجانده‌شده و عمداً
حذف‌شده، [نسخهٔ پشتیبان](/fa/cli/backup) را ببینید.

برای یک نقطهٔ بازیابی بایت‌به‌بایت که شامل مصنوعات ناپایدار حذف‌شده از
بایگانی قابل‌انتقال است، Gateway را متوقف کنید و از اسنپ‌شات سامانهٔ فایل، حجم یا VM
ارائه‌شده توسط پلتفرم خود استفاده کنید.

### بازگرداندن نصب بسته به نسخهٔ قبلی

نسخه‌های منتشرشده را فهرست کنید، سپس نسخهٔ سالم شناخته‌شده را پیش‌نمایش و نصب کنید:

```bash
npm view openclaw versions --json
openclaw update --tag <known-good-version> --dry-run
openclaw update --tag <known-good-version>
```

`openclaw update --tag` بر نصب مستقیم مدیر بسته ترجیح داده می‌شود. این مسیر
بازگشت به نسخهٔ قبلی را تشخیص می‌دهد، تأیید می‌گیرد، همگرایی Pluginهای مدیریت‌شده
و بررسی‌های سازگاری را در برابر هدف نصب‌شده اجرا می‌کند، فرادادهٔ سرویس را
تازه‌سازی می‌کند، Gateway را دوباره راه‌اندازی می‌کند و نسخهٔ در حال اجرا را تأیید می‌کند. اگر کانال ذخیره‌شده
`extended-stable` است، از
`--channel stable --tag <known-good-version>` استفاده کنید، زیرا برچسب‌های دقیق یک‌باره را نمی‌توان
با انتخابگر `extended-stable` ترکیب کرد.

به‌روزرسانی‌های بسته، گزینهٔ نامزد را پیش از فعال‌سازی آماده و تأیید می‌کنند. اگر
جابه‌جایی سامانهٔ فایل یا جایگزینی شیم فرمان ناموفق باشد، OpenClaw بستهٔ قدیمی را
به‌طور خودکار بازیابی می‌کند. پس از یک جابه‌جایی موفق، اگر بعداً بررسی سلامت Gateway
ناموفق شود، به‌جای جایگزینی خودکار دوبارهٔ بسته،
نسخهٔ قبلی و دستورالعمل‌های بازگشت دستی گزارش می‌شوند.

اگر مسیر به‌روزرسانی CLI در دسترس نیست، از همان مدیر بسته و
محدودهٔ نصبی استفاده کنید که مالک Gateway فعلی هستند:

```bash
openclaw gateway stop
npm i -g openclaw@<known-good-version>
openclaw gateway install --force
openclaw gateway restart
```

وقتی آن مدیر مالک نصب است، `npm` را با `pnpm` یا `bun` جایگزین کنید. هنگام
بازیابی پس از رخداد، با تنظیم `OPENCLAW_NO_AUTO_UPDATE=1` در محیط Gateway، از اعمال فوری
نسخه‌ای جدیدتر توسط به‌روزرسان خودکار فعال جلوگیری کنید.

### بازگرداندن یک checkout منبع به نسخهٔ قبلی

از یک checkout تمیز استفاده کنید و یک برچسب یا commit سالم شناخته‌شده را انتخاب کنید:

```bash
git fetch --all --tags
git checkout --detach <known-good-tag-or-commit>
pnpm install && pnpm build
openclaw gateway restart
```

برای بازگشت به جدیدترین نسخه: `git checkout main && git pull`.

به‌روزرسان به‌طور خودکار checkout گیت را به شاخه و
SHA قبلی آن بازمی‌گرداند، اگر نصب وابستگی، ساخت، ساخت UI یا doctor پس از آغاز
به‌روزرسانی گیت ناموفق شود. وقتی عمداً یک commit قدیمی‌تر را انتخاب می‌کنید،
همچنان checkout دستی لازم است.

### بازگشت به نسخهٔ قبلی در آن سوی مهاجرت SQLite نشست

پیش از راه‌اندازی یک نسخهٔ قدیمی‌تر و فایل‌محور OpenClaw، از CLI فعلی برای
بازیابی مصنوعات بایگانی‌شدهٔ قدیمی رونوشت استفاده کنید:

```bash
openclaw gateway stop
openclaw doctor --session-sqlite restore --session-sqlite-all-agents
```

این کار داده‌های SQLite را حذف نمی‌کند. نشست‌هایی که پس از مهاجرت SQLite ایجاد شده‌اند
فقط در SQLite وجود دارند و در زمان اجرای قدیمی‌تر ظاهر نمی‌شوند. [بازگشت به نسخهٔ قبلی پس از مهاجرت SQLite نشست](/fa/cli/doctor#downgrading-after-session-sqlite-migration) را ببینید.

### فقط در صورت ضرورت وضعیت را بازیابی کنید

اگر کد قدیمی‌تر نتواند پیکربندی یا طرح‌وارهٔ پایگاه دادهٔ جدیدتر را بخواند،
Gateway را متوقف کنید و اسنپ‌شات تأییدشدهٔ سامانهٔ فایل، حجم یا VM پیش از به‌روزرسانی را بازیابی کنید.
پیش از بازیابی، وضعیت فعلی را جداگانه حفظ کنید، زیرا این کار
تغییرات ایجادشده پس از اسنپ‌شات را حذف می‌کند.

بایگانی‌های گستردهٔ `openclaw backup create` از ایجاد و تأیید پشتیبانی می‌کنند، اما
فعال‌سازی کل بایگانی در محل را پشتیبانی نمی‌کنند. یک بایگانی گسترده را در یک دایرکتوری
آماده‌سازی استخراج کنید و برای بازیابی آفلاین از نگاشت مبدأ به بایگانی
`manifest.json` آن استفاده کنید. `openclaw backup sqlite restore` نیز یک پایگاه دادهٔ تأییدشده را
در یک هدف تازه می‌نویسد؛ فعال‌سازی آن هدف همچنان یک مرحلهٔ صریح و آفلاین
برای اپراتور است.

### بازگشت به نسخهٔ قبلی را تأیید کنید

```bash
openclaw --version
openclaw health
openclaw plugins list --json
openclaw gateway status --deep --json
openclaw doctor --lint --json
```

## اگر گیر کرده‌اید

- دوباره `openclaw doctor` را اجرا کنید و خروجی را با دقت بخوانید.
- برای `openclaw update --channel dev` در checkoutهای منبع، به‌روزرسان در صورت نیاز `pnpm` را به‌طور خودکار راه‌اندازی اولیه می‌کند. اگر خطای راه‌اندازی اولیهٔ pnpm/corepack را مشاهده کردید، `pnpm` را به‌صورت دستی نصب کنید (یا `corepack` را دوباره فعال کنید) و به‌روزرسانی را دوباره اجرا کنید.
- بررسی کنید: [عیب‌یابی](/fa/gateway/troubleshooting)
- در Discord بپرسید: [https://discord.gg/clawd](https://discord.gg/clawd)

## مرتبط

- [نمای کلی نصب](/fa/install): همهٔ روش‌های نصب.
- [Doctor](/fa/gateway/doctor): بررسی‌های سلامت پس از به‌روزرسانی.
- [مهاجرت](/fa/install/migrating): راهنماهای مهاجرت نسخهٔ اصلی.
