Maintenance
กำลังอัปเดต
ดูแลให้ OpenClaw เป็นเวอร์ชันล่าสุดอยู่เสมอ
แนะนำ: openclaw update
วิธีที่เร็วที่สุดในการอัปเดต คำสั่งนี้จะตรวจหาประเภทการติดตั้งของคุณ (npm หรือ git), ดึงเวอร์ชันล่าสุด, รัน openclaw doctor และรีสตาร์ต Gateway
openclaw updateหากต้องการสลับช่องทางหรือระบุเวอร์ชันเป้าหมาย:
openclaw update --channel betaopenclaw update --channel devopenclaw update --dry-run # ดูตัวอย่างโดยไม่ปรับใช้openclaw update ไม่รับ --verbose สำหรับการวินิจฉัยการอัปเดต ให้ใช้
--dry-run เพื่อดูตัวอย่างการดำเนินการที่วางแผนไว้, --json สำหรับผลลัพธ์แบบมีโครงสร้าง หรือ
openclaw update status --json เพื่อตรวจสอบช่องทางและสถานะความพร้อมใช้งาน
ตัวติดตั้งมีแฟล็ก --verbose ของตัวเอง แต่แฟล็กนั้นไม่ใช่ส่วนหนึ่งของ
openclaw update
--channel beta จะเลือก beta ก่อน แต่ runtime จะถอยกลับไปใช้ stable/latest เมื่อ
แท็ก beta หายไปหรือเก่ากว่า release stable ล่าสุด ใช้ --tag beta
หากคุณต้องการ npm beta dist-tag ดิบสำหรับการอัปเดตแพ็กเกจครั้งเดียว
ใช้ --channel dev สำหรับ checkout GitHub main แบบเคลื่อนที่ต่อเนื่องถาวร สำหรับการอัปเดตแพ็กเกจ
--tag main จะแมปไปยัง github:openclaw/openclaw#main สำหรับการรันครั้งเดียว และ
สเปกแหล่งที่มาจาก GitHub/git จะถูกแพ็กเป็น tarball ชั่วคราวก่อนการติดตั้ง
npm แบบ staged
สำหรับ Plugin ที่มีการจัดการ fallback ของช่องทาง beta จะเป็นคำเตือน: การอัปเดต core ยังสำเร็จได้ในขณะที่ Plugin ใช้ release default/latest ที่บันทึกไว้ เพราะไม่มี Plugin beta ให้ใช้
ดู ช่องทางการพัฒนา สำหรับความหมายของช่องทาง
สลับระหว่างการติดตั้ง npm และ git
ใช้ช่องทางเมื่อคุณต้องการเปลี่ยนประเภทการติดตั้ง ตัวอัปเดตจะเก็บ
state, config, credentials และ workspace ของคุณไว้ใน ~/.openclaw; มันเปลี่ยนเฉพาะ
การติดตั้งโค้ด OpenClaw ที่ CLI และ Gateway ใช้
# การติดตั้งแพ็กเกจ npm -> checkout git ที่แก้ไขได้openclaw update --channel dev # checkout git -> การติดตั้งแพ็กเกจ npmopenclaw update --channel stableรันพร้อม --dry-run ก่อนเพื่อดูตัวอย่างการสลับโหมดการติดตั้งที่แน่นอน:
openclaw update --channel dev --dry-runopenclaw update --channel stable --dry-runช่องทาง dev จะรับประกันว่ามี checkout git, build และติดตั้ง CLI แบบ global
จาก checkout นั้น ช่องทาง stable และ beta ใช้การติดตั้งแพ็กเกจ หาก
Gateway ติดตั้งอยู่แล้ว openclaw update จะรีเฟรช metadata ของ service
และรีสตาร์ต เว้นแต่คุณจะส่ง --no-restart
สำหรับการติดตั้งแพ็กเกจที่มี service Gateway ที่มีการจัดการ openclaw update จะกำหนดเป้าหมาย
package root ที่ service นั้นใช้ หากคำสั่ง openclaw ใน shell มาจาก
การติดตั้งอื่น ตัวอัปเดตจะพิมพ์ root ทั้งสองและพาธ Node ของ service ที่มีการจัดการ
การอัปเดตแพ็กเกจจะใช้ package manager ที่เป็นเจ้าของ service
root และตรวจสอบ Node ของ service ที่มีการจัดการเทียบกับ engine ของ target release
ก่อนแทนที่แพ็กเกจ
ทางเลือก: รันตัวติดตั้งอีกครั้ง
curl -fsSL https://openclaw.ai/install.sh | bashเพิ่ม --no-onboard เพื่อข้าม onboarding หากต้องการบังคับประเภทการติดตั้งเฉพาะผ่าน
ตัวติดตั้ง ให้ส่ง --install-method git --no-onboard หรือ
--install-method npm --no-onboard
หาก openclaw update ล้มเหลวหลังระยะติดตั้งแพ็กเกจ npm ให้รัน
ตัวติดตั้งอีกครั้ง ตัวติดตั้งจะไม่เรียกตัวอัปเดตเก่า; มันรันการติดตั้ง
แพ็กเกจ global โดยตรงและสามารถกู้คืนการติดตั้ง 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 แบบ manual
npm i -g openclaw@latestควรใช้ openclaw update สำหรับการติดตั้งที่มีการดูแล เพราะมันประสาน
การสลับแพ็กเกจกับ service Gateway ที่กำลังทำงานได้ หากคุณอัปเดตด้วยตนเองบน
การติดตั้งที่มีการดูแล ให้หยุด Gateway ที่มีการจัดการก่อนที่ package manager จะเริ่ม
Package manager จะแทนที่ไฟล์ในตำแหน่งเดิม และ Gateway ที่กำลังทำงานอยู่อาจพยายาม
โหลดไฟล์ core หรือ Plugin ระหว่างที่ package tree ถูกสลับค้างครึ่งหนึ่งชั่วคราวได้
รีสตาร์ต Gateway หลังจาก package manager เสร็จ เพื่อให้ service ใช้
การติดตั้งใหม่
สำหรับการติดตั้ง Linux system-global ที่ root เป็นเจ้าของ หาก openclaw update ล้มเหลวด้วย
EACCES และคุณกู้คืนด้วย system npm ให้หยุด Gateway ไว้ตลอดช่วง
การแทนที่แพ็กเกจด้วยตนเอง ใช้แฟล็กโปรไฟล์ openclaw หรือ environment เดียวกัน
ที่คุณใช้ตามปกติสำหรับ Gateway นั้น แทนที่ /usr/bin/npm ด้วย system npm
ที่เป็นเจ้าของ global prefix ที่ root เป็นเจ้าของบนโฮสต์ของคุณ:
openclaw gateway stopsudo /usr/bin/npm i -g openclaw@latestopenclaw gateway install --forceopenclaw gateway restartจากนั้นตรวจสอบ service:
openclaw --versioncurl -fsS http://127.0.0.1:18789/readyzopenclaw plugins list --jsonopenclaw gateway status --deep --jsonopenclaw doctor --lint --jsonเมื่อ openclaw update จัดการการติดตั้ง npm แบบ global มันจะติดตั้งเป้าหมายลงใน
npm prefix ชั่วคราวก่อน, ตรวจสอบ inventory ของ dist ที่แพ็กมา แล้วจึงสลับ
package tree ที่สะอาดเข้าไปใน global prefix จริง วิธีนี้หลีกเลี่ยงไม่ให้ npm ซ้อน
แพ็กเกจใหม่ทับไฟล์ค้างจากแพ็กเกจเก่า หากคำสั่งติดตั้งล้มเหลว
OpenClaw จะลองอีกครั้งหนึ่งด้วย --omit=optional การลองซ้ำนี้ช่วยโฮสต์ที่
optional dependencies แบบ native ไม่สามารถคอมไพล์ได้ ขณะเดียวกันยังคงแสดงความล้มเหลวเดิมไว้
หาก fallback ก็ล้มเหลวด้วย
คำสั่งอัปเดต npm และอัปเดต Plugin ที่ OpenClaw จัดการยังล้าง quarantine
min-release-age ของ npm สำหรับกระบวนการ npm ลูกด้วย npm อาจรายงาน
นโยบายนั้นเป็น cutoff before ที่ได้มา; ทั้งสองมีประโยชน์สำหรับนโยบาย quarantine
ของ supply chain ทั่วไป แต่การอัปเดต OpenClaw โดยชัดแจ้งหมายถึง "ติดตั้ง
OpenClaw release ที่เลือกตอนนี้"
pnpm add -g openclaw@latestbun add -g openclaw@latestหัวข้อขั้นสูงเกี่ยวกับการติดตั้ง npm
Package tree แบบอ่านอย่างเดียว
OpenClaw ถือว่าการติดตั้ง global แบบแพ็กเกจเป็นแบบอ่านอย่างเดียวใน runtime แม้ว่าไดเรกทอรีแพ็กเกจ global จะเขียนได้โดยผู้ใช้ปัจจุบันก็ตาม การติดตั้งแพ็กเกจ Plugin อยู่ใน root npm/git ที่ OpenClaw เป็นเจ้าของภายใต้ไดเรกทอรี config ของผู้ใช้ และการเริ่มต้น Gateway จะไม่แก้ไข package tree ของ OpenClaw
การตั้งค่า npm บน Linux บางแบบติดตั้งแพ็กเกจ global ไว้ใต้ไดเรกทอรีที่ root เป็นเจ้าของ เช่น /usr/lib/node_modules/openclaw OpenClaw รองรับ layout นั้นเพราะคำสั่งติดตั้ง/อัปเดต Plugin เขียนภายนอกไดเรกทอรีแพ็กเกจ global นั้น
systemd unit ที่ harden แล้ว
ให้ OpenClaw มีสิทธิ์เขียน root ของ config/state เพื่อให้การติดตั้ง Plugin อย่างชัดแจ้ง, การอัปเดต Plugin และการ cleanup ของ doctor สามารถบันทึกการเปลี่ยนแปลงได้:
ReadWritePaths=/var/lib/openclaw /home/openclaw/.openclaw /tmpการตรวจสอบพื้นที่ดิสก์ล่วงหน้า
ก่อนการอัปเดตแพ็กเกจและการติดตั้ง Plugin อย่างชัดแจ้ง OpenClaw จะพยายามตรวจสอบพื้นที่ดิสก์ของ volume เป้าหมายแบบ best-effort พื้นที่เหลือน้อยจะสร้างคำเตือนพร้อมพาธที่ตรวจสอบ แต่ไม่บล็อกการอัปเดต เพราะ quota ของ filesystem, snapshot และ network volume อาจเปลี่ยนหลังการตรวจสอบได้ การติดตั้งด้วย package manager จริงและการตรวจสอบหลังติดตั้งยังคงเป็นแหล่งอ้างอิงหลัก
ตัวอัปเดตอัตโนมัติ
ตัวอัปเดตอัตโนมัติปิดอยู่โดยค่าเริ่มต้น เปิดใช้งานใน ~/.openclaw/openclaw.json:
{ update: { channel: "stable", auto: { enabled: true, stableDelayHours: 6, stableJitterHours: 12, betaCheckIntervalHours: 1, }, },}| ช่องทาง | พฤติกรรม |
|---|---|
stable |
รอ stableDelayHours แล้วปรับใช้พร้อม jitter แบบ deterministic ภายใน stableJitterHours (การ rollout แบบกระจาย) |
beta |
ตรวจสอบทุก betaCheckIntervalHours (ค่าเริ่มต้น: ทุกชั่วโมง) และปรับใช้ทันที |
dev |
ไม่มีการปรับใช้อัตโนมัติ ใช้ openclaw update ด้วยตนเอง |
Gateway ยังบันทึกคำแนะนำการอัปเดตตอน startup ด้วย (ปิดใช้งานด้วย update.checkOnStart: false)
สำหรับการ downgrade หรือการกู้คืนจาก incident ให้ตั้ง OPENCLAW_NO_AUTO_UPDATE=1 ใน environment ของ Gateway เพื่อบล็อกการปรับใช้อัตโนมัติแม้จะกำหนดค่า update.auto.enabled แล้วก็ตาม คำแนะนำการอัปเดตตอน startup ยังรันได้ เว้นแต่จะปิดใช้งาน update.checkOnStart ด้วย
การอัปเดตผ่าน package manager ที่ร้องขอผ่าน handler ของ control plane Gateway แบบ live
จะไม่แทนที่ package tree ภายในกระบวนการ Gateway ที่กำลังทำงาน บนการติดตั้ง service
ที่มีการจัดการ Gateway จะเริ่ม handoff แบบ detached, ออก และปล่อยให้
เส้นทาง CLI ปกติ openclaw update --yes --json หยุด service, แทนที่
แพ็กเกจ, รีเฟรช metadata ของ service, รีสตาร์ต, ตรวจสอบเวอร์ชันและ
ความสามารถในการเข้าถึงของ Gateway และกู้คืน macOS LaunchAgent ที่ติดตั้งแล้วแต่ยังไม่โหลด
เมื่อเป็นไปได้ หาก Gateway ไม่สามารถทำ handoff นั้นอย่างปลอดภัย update.run จะรายงาน
คำสั่ง shell ที่ปลอดภัยแทนการรัน package manager ในกระบวนการ
หลังอัปเดต
รัน doctor
openclaw doctorย้าย config, audit นโยบาย DM และตรวจสอบสุขภาพของ Gateway รายละเอียด: Doctor
รีสตาร์ต Gateway
openclaw gateway restartตรวจสอบ
openclaw healthRollback
ตรึงเวอร์ชัน (npm)
npm i -g openclaw@<version>openclaw doctoropenclaw gateway restartตรึง commit (source)
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อีกครั้งและอ่าน output อย่างระมัดระวัง - สำหรับ
openclaw update --channel devบน source checkout ตัวอัปเดตจะ bootstrappnpmอัตโนมัติเมื่อจำเป็น หากคุณเห็นข้อผิดพลาด bootstrap ของ pnpm/corepack ให้ติดตั้งpnpmด้วยตนเอง (หรือเปิดใช้งานcorepackอีกครั้ง) แล้วรันการอัปเดตซ้ำ - ตรวจสอบ: การแก้ไขปัญหา
- ถามใน Discord: https://discord.gg/clawd
ที่เกี่ยวข้อง
- ภาพรวมการติดตั้ง: วิธีติดตั้งทั้งหมด
- Doctor: การตรวจสอบสุขภาพหลังอัปเดต
- การย้ายเวอร์ชัน: คู่มือการย้ายเวอร์ชันหลัก