الانتقال إلى المحتوى الرئيسي

الآليات الداخلية لبرنامج التثبيت

يشحن OpenClaw ثلاثة scripts للتثبيت، يتم تقديمها من openclaw.ai.
Scriptالمنصةما الذي يفعله
install.shmacOS / Linux / WSLيثبت Node عند الحاجة، ويثبت OpenClaw عبر npm (افتراضيًا) أو git، ويمكنه تشغيل الإعداد التفاعلي.
install-cli.shmacOS / Linux / WSLيثبت Node + OpenClaw داخل بادئة محلية (~/.openclaw) باستخدام npm أو أوضاع git checkout. لا يتطلب root.
install.ps1Windows (PowerShell)يثبت Node عند الحاجة، ويثبت OpenClaw عبر npm (افتراضيًا) أو git، ويمكنه تشغيل الإعداد التفاعلي.

أوامر سريعة

curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --help
إذا نجح التثبيت لكن لم يتم العثور على openclaw في طرفية جديدة، فراجع استكشاف أخطاء Node.js وإصلاحها.

install.sh

موصى به لمعظم عمليات التثبيت التفاعلية على macOS/Linux/WSL.

التدفق (install.sh)

1

اكتشاف نظام التشغيل

يدعم macOS وLinux (بما في ذلك WSL). وإذا تم اكتشاف macOS، فسيقوم بتثبيت Homebrew إذا كان مفقودًا.
2

ضمان Node.js 24 افتراضيًا

يتحقق من إصدار Node ويثبت Node 24 إذا لزم الأمر (Homebrew على macOS، وscripts إعداد NodeSource على Linux apt/dnf/yum). وما زال OpenClaw يدعم Node 22 LTS، حاليًا 22.14+، من أجل التوافق.
3

ضمان Git

يثبت Git إذا كان مفقودًا.
4

تثبيت OpenClaw

  • طريقة npm (الافتراضية): تثبيت npm عالمي
  • طريقة git: استنساخ/تحديث المستودع، وتثبيت التبعيات باستخدام pnpm، والبناء، ثم تثبيت wrapper في ~/.local/bin/openclaw
5

مهام ما بعد التثبيت

  • يحدّث خدمة gateway المحمّلة على أفضل جهد (openclaw gateway install --force، ثم إعادة التشغيل)
  • يشغّل openclaw doctor --non-interactive عند الترقيات وتثبيتات git (على أفضل جهد)
  • يحاول تنفيذ الإعداد التفاعلي عند الاقتضاء (توفر TTY، وعدم تعطيل onboarding، واجتياز فحوصات bootstrap/config)
  • يضبط SHARP_IGNORE_GLOBAL_LIBVIPS=1 افتراضيًا

اكتشاف source checkout

إذا تم تشغيله داخل OpenClaw checkout (package.json + pnpm-workspace.yaml)، فإن script يعرض:
  • استخدام checkout (git)، أو
  • استخدام التثبيت العالمي (npm)
إذا لم تكن هناك TTY متاحة ولم يتم تحديد طريقة التثبيت، فسيستخدم npm افتراضيًا ويعرض تحذيرًا. يخرج script بالرمز 2 عند اختيار طريقة غير صالحة أو قيم --install-method غير صالحة.

أمثلة (install.sh)

curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash
العلامةالوصف
--install-method npm|gitاختيار طريقة التثبيت (الافتراضي: npm). الاسم المستعار: --method
--npmاختصار لطريقة npm
--gitاختصار لطريقة git. الاسم المستعار: --github
--version <version|dist-tag|spec>إصدار npm أو dist-tag أو package spec (الافتراضي: latest)
--betaاستخدام beta dist-tag إذا كانت متاحة، وإلا الرجوع إلى latest
--git-dir <path>دليل checkout (الافتراضي: ~/openclaw). الاسم المستعار: --dir
--no-git-updateتخطي git pull لـ checkout الموجودة
--no-promptتعطيل prompts
--no-onboardتخطي onboarding
--onboardتمكين onboarding
--dry-runطباعة الإجراءات من دون تطبيق التغييرات
--verboseتمكين إخراج التصحيح (set -x، وسجلات npm بمستوى notice)
--helpعرض الاستخدام (-h)
المتغيرالوصف
OPENCLAW_INSTALL_METHOD=git|npmطريقة التثبيت
OPENCLAW_VERSION=latest|next|main|<semver>|<spec>إصدار npm أو dist-tag أو package spec
OPENCLAW_BETA=0|1استخدام beta إذا كانت متاحة
OPENCLAW_GIT_DIR=<path>دليل checkout
OPENCLAW_GIT_UPDATE=0|1تبديل تحديثات git
OPENCLAW_NO_PROMPT=1تعطيل prompts
OPENCLAW_NO_ONBOARD=1تخطي onboarding
OPENCLAW_DRY_RUN=1وضع التشغيل التجريبي
OPENCLAW_VERBOSE=1وضع التصحيح
OPENCLAW_NPM_LOGLEVEL=error|warn|noticeمستوى سجل npm
SHARP_IGNORE_GLOBAL_LIBVIPS=0|1التحكم في سلوك sharp/libvips (الافتراضي: 1)

install-cli.sh

مصمم للبيئات التي تريد فيها كل شيء تحت بادئة محلية (الافتراضي ~/.openclaw) ومن دون تبعية Node على مستوى النظام. يدعم تثبيتات npm افتراضيًا، بالإضافة إلى تثبيتات git-checkout ضمن تدفق البادئة نفسه.

التدفق (install-cli.sh)

1

تثبيت runtime محلي لـ Node

ينزّل tarball مثبتًا لإصدار Node LTS مدعوم (الإصدار مضمّن في script ويتم تحديثه بشكل مستقل) إلى <prefix>/tools/node-v<version> ويتحقق من SHA-256.
2

ضمان Git

إذا كان Git مفقودًا، فإنه يحاول تثبيته عبر apt/dnf/yum على Linux أو Homebrew على macOS.
3

تثبيت OpenClaw تحت البادئة

  • طريقة npm (الافتراضية): تثبيت تحت البادئة باستخدام npm، ثم كتابة wrapper إلى <prefix>/bin/openclaw
  • طريقة git: استنساخ/تحديث checkout (الافتراضي ~/openclaw) ومع ذلك يكتب wrapper إلى <prefix>/bin/openclaw
4

تحديث خدمة gateway المحمّلة

إذا كانت خدمة gateway محمّلة بالفعل من تلك البادئة نفسها، فإن script يشغّل openclaw gateway install --force، ثم openclaw gateway restart، ثم يتحقق من صحة gateway على أفضل جهد.

أمثلة (install-cli.sh)

curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh | bash
العلامةالوصف
--prefix <path>بادئة التثبيت (الافتراضي: ~/.openclaw)
--install-method npm|gitاختيار طريقة التثبيت (الافتراضي: npm). الاسم المستعار: --method
--npmاختصار لطريقة npm
--git, --githubاختصار لطريقة git
--git-dir <path>دليل Git checkout (الافتراضي: ~/openclaw). الاسم المستعار: --dir
--version <ver>إصدار OpenClaw أو dist-tag (الافتراضي: latest)
--node-version <ver>إصدار Node (الافتراضي: 22.22.0)
--jsonإخراج أحداث NDJSON
--onboardتشغيل openclaw onboard بعد التثبيت
--no-onboardتخطي onboarding (الافتراضي)
--set-npm-prefixعلى Linux، فرض بادئة npm إلى ~/.npm-global إذا كانت البادئة الحالية غير قابلة للكتابة
--helpعرض الاستخدام (-h)
المتغيرالوصف
OPENCLAW_PREFIX=<path>بادئة التثبيت
OPENCLAW_INSTALL_METHOD=git|npmطريقة التثبيت
OPENCLAW_VERSION=<ver>إصدار OpenClaw أو dist-tag
OPENCLAW_NODE_VERSION=<ver>إصدار Node
OPENCLAW_GIT_DIR=<path>دليل Git checkout لتثبيتات git
OPENCLAW_GIT_UPDATE=0|1تبديل تحديثات git لـ checkouts الموجودة
OPENCLAW_NO_ONBOARD=1تخطي onboarding
OPENCLAW_NPM_LOGLEVEL=error|warn|noticeمستوى سجل npm
SHARP_IGNORE_GLOBAL_LIBVIPS=0|1التحكم في سلوك sharp/libvips (الافتراضي: 1)

install.ps1

التدفق (install.ps1)

1

ضمان بيئة PowerShell + Windows

يتطلب PowerShell 5+.
2

ضمان Node.js 24 افتراضيًا

إذا كان مفقودًا، يحاول التثبيت عبر winget، ثم Chocolatey، ثم Scoop. وما زال Node 22 LTS، حاليًا 22.14+، مدعومًا من أجل التوافق.
3

تثبيت OpenClaw

  • طريقة npm (الافتراضية): تثبيت npm عالمي باستخدام -Tag المحدد
  • طريقة git: استنساخ/تحديث المستودع، والتثبيت/البناء باستخدام pnpm، وتثبيت wrapper في %USERPROFILE%\.local\bin\openclaw.cmd
4

مهام ما بعد التثبيت

  • يضيف دليل bin المطلوب إلى PATH الخاص بالمستخدم عند الإمكان
  • يحدّث خدمة gateway المحمّلة على أفضل جهد (openclaw gateway install --force، ثم إعادة التشغيل)
  • يشغّل openclaw doctor --non-interactive عند الترقيات وتثبيتات git (على أفضل جهد)

أمثلة (install.ps1)

iwr -useb https://openclaw.ai/install.ps1 | iex
العلامةالوصف
-InstallMethod npm|gitطريقة التثبيت (الافتراضي: npm)
-Tag <tag|version|spec>npm dist-tag أو إصدار أو package spec (الافتراضي: latest)
-GitDir <path>دليل checkout (الافتراضي: %USERPROFILE%\openclaw)
-NoOnboardتخطي onboarding
-NoGitUpdateتخطي git pull
-DryRunطباعة الإجراءات فقط
المتغيرالوصف
OPENCLAW_INSTALL_METHOD=git|npmطريقة التثبيت
OPENCLAW_GIT_DIR=<path>دليل checkout
OPENCLAW_NO_ONBOARD=1تخطي onboarding
OPENCLAW_GIT_UPDATE=0تعطيل git pull
OPENCLAW_DRY_RUN=1وضع التشغيل التجريبي
إذا تم استخدام -InstallMethod git وكان Git مفقودًا، فإن script ينهي التنفيذ ويطبع رابط Git for Windows.

CI والأتمتة

استخدم العلامات/متغيرات البيئة غير التفاعلية للحصول على عمليات تشغيل متوقعة.
curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --no-prompt --no-onboard

استكشاف الأخطاء وإصلاحها

Git مطلوب لطريقة التثبيت git. أما في تثبيتات npm، فما زال يتم التحقق من Git/تثبيته لتجنب أعطال spawn git ENOENT عندما تستخدم التبعيات عناوين URL خاصة بـ git.
تشير بعض إعدادات Linux إلى أن البادئة العالمية لـ npm تقع في مسارات مملوكة لـ root. ويمكن لـ install.sh تبديل البادئة إلى ~/.npm-global وإلحاق تصديرات PATH بملفات rc الخاصة بـ shell (عندما تكون هذه الملفات موجودة).
تضبط scripts افتراضيًا SHARP_IGNORE_GLOBAL_LIBVIPS=1 لتجنب بناء sharp مقابل libvips الخاص بالنظام. وللتجاوز:
SHARP_IGNORE_GLOBAL_LIBVIPS=0 curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash
ثبّت Git for Windows، وأعد فتح PowerShell، ثم أعد تشغيل برنامج التثبيت.
شغّل npm config get prefix وأضف ذلك الدليل إلى PATH الخاص بالمستخدم لديك (من دون لاحقة \bin على Windows)، ثم أعد فتح PowerShell.
لا يوفّر install.ps1 حاليًا مفتاح -Verbose. استخدم تتبع PowerShell لتشخيصات على مستوى script:
Set-PSDebug -Trace 1
& ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -NoOnboard
Set-PSDebug -Trace 0
تكون المشكلة عادة في PATH. راجع استكشاف أخطاء Node.js وإصلاحها.