Maintenance
การอัปเดต
ดูแลให้ OpenClaw เป็นเวอร์ชันล่าสุดอยู่เสมอ
สำหรับการแทนที่อิมเมจของ Docker, Podman และ Kubernetes โปรดดู การอัปเกรดอิมเมจคอนเทนเนอร์ Gateway จะดำเนินงานอัปเกรดที่ปลอดภัยต่อการเริ่มต้นระบบก่อนพร้อมให้บริการ และจะออกหากสถานะที่เมานต์ไว้ จำเป็นต้องซ่อมแซมด้วยตนเอง
แนะนำ: openclaw update
ตรวจหาประเภทการติดตั้งของคุณ (npm หรือ git) ดึงเวอร์ชันล่าสุด เรียกใช้ openclaw doctor และรีสตาร์ต Gateway
openclaw updateสลับช่องทางหรือระบุเวอร์ชันเป้าหมาย:
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 จะเลือก dist-tag รุ่นเบต้าของ npm ก่อน แต่จะย้อนกลับไปใช้ stable/latest
เมื่อไม่มีแท็กรุ่นเบต้าหรือเวอร์ชันของแท็กนั้นเก่ากว่ารุ่นเสถียรล่าสุด
หากต้องการอัปเดตแพ็กเกจแบบครั้งเดียวโดยตรึงไว้กับ dist-tag รุ่นเบต้าดิบของ npm ให้ใช้ --tag beta แทน
--channel extended-stable รองรับเฉพาะแพ็กเกจ และการติดตั้งยังคงทำงาน
เฉพาะในโฟร์กราวด์ OpenClaw จะอ่านตัวเลือกสาธารณะ extended-stable ของ npm
ตรวจสอบแพ็กเกจที่ระบุอย่างเจาะจง และติดตั้งเวอร์ชันนั้นโดยตรง ข้อมูลรีจิสทรีที่หายไป
หรือไม่สอดคล้องกันจะทำให้ระบบหยุดอย่างปลอดภัย และจะไม่ย้อนกลับไปใช้ latest
หากเวอร์ชันที่เลือกเก่ากว่าเวอร์ชันที่ติดตั้งอยู่ ระบบยังคงขอการยืนยัน
การดาวน์เกรดตามปกติ CLI จะบันทึกช่องทางหลังจากอัปเดตแกนหลักสำเร็จ
แต่การเรียก npm install -g openclaw@extended-stable โดยตรง
จะไม่อัปเดต update.channel
หลังจากสลับแกนหลักแล้ว Plugin npm อย่างเป็นทางการที่เข้าเกณฑ์ซึ่งมีเจตนาเป็นค่าเปล่า/ค่าเริ่มต้น
หรือ latest จะปรับมาใช้เวอร์ชันเดียวกับแกนหลักนั้น การตรึงเวอร์ชันแบบเจาะจงและแท็กที่ระบุชัดเจน
ซึ่งไม่ใช่ latest, Plugin จากบุคคลที่สาม และแหล่งที่ไม่ใช่ npm จะไม่เปลี่ยนแปลง
การติดตั้งจากแค็ตตาล็อกที่สร้างโดย OpenClaw เวอร์ชันปัจจุบันจะคงเจตนาเริ่มต้นนั้นไว้
ระเบียนเก่าที่มีเพียงเวอร์ชันแบบเจาะจงจะยังคงถูกตรึงไว้ เนื่องจาก
OpenClaw ไม่สามารถแยกแยะการตรึงอัตโนมัติแบบเก่าจากการตรึงโดยผู้ใช้ได้อย่างปลอดภัย ให้เรียกใช้
openclaw plugins update @openclaw/name หนึ่งครั้งบนช่องทาง extended-stable
เพื่อให้ Plugin นั้นกลับมาติดตามเวอร์ชันแกนหลักอย่างเจาะจง
--channel dev มอบเช็กเอาต์ GitHub main แบบเคลื่อนที่และคงอยู่ถาวร สำหรับการอัปเดต
แพ็กเกจแบบครั้งเดียว --tag main จะแมปไปยังข้อกำหนดแพ็กเกจ
github:openclaw/openclaw#main และติดตั้งโดยตรงผ่านตัวจัดการแพ็กเกจเป้าหมาย (npm/pnpm/bun)
สำหรับ Plugin ที่มีการจัดการ การไม่มีรุ่นเบต้าถือเป็นคำเตือน ไม่ใช่ความล้มเหลว: การอัปเดตแกนหลักยังคงสำเร็จได้ ขณะที่ Plugin ย้อนกลับไปใช้ รุ่นค่าเริ่มต้น/latest ที่บันทึกไว้
ดูความหมายของช่องทางได้ที่ ช่องทางการเผยแพร่
สลับระหว่างการติดตั้งด้วย npm และ git
ใช้ช่องทางเพื่อเปลี่ยนประเภทการติดตั้ง ตัวอัปเดตจะเก็บสถานะ การกำหนดค่า
ข้อมูลประจำตัว และพื้นที่ทำงานของคุณไว้ใน ~/.openclaw โดยจะเปลี่ยนเฉพาะชุดโค้ด OpenClaw
ที่ CLI และ Gateway ใช้เท่านั้น
# การติดตั้งแพ็กเกจ npm -> เช็กเอาต์ git ที่แก้ไขได้openclaw update --channel dev # เช็กเอาต์ git -> การติดตั้งแพ็กเกจ npmopenclaw update --channel stableดูตัวอย่างการสลับโหมดการติดตั้งก่อน:
openclaw update --channel dev --dry-runopenclaw update --channel stable --dry-rundev จะตรวจสอบให้มีเช็กเอาต์ git สร้างบิลด์ และติดตั้ง CLI แบบโกลบอลจาก
เช็กเอาต์นั้น ช่องทาง stable, extended-stable และ beta ใช้การติดตั้ง
แบบแพ็กเกจ ระบบจะปฏิเสธ extended-stable บนเช็กเอาต์ git โดยไม่แก้ไข
หรือแปลงเช็กเอาต์นั้น หากติดตั้ง Gateway ไว้แล้ว openclaw update จะรีเฟรช
ข้อมูลเมตาของบริการและรีสตาร์ตบริการ เว้นแต่คุณจะส่ง --no-restart
สำหรับการติดตั้งแบบแพ็กเกจที่มีบริการ Gateway ซึ่งได้รับการจัดการ openclaw update จะกำหนดเป้าหมาย
ไปยังรากแพ็กเกจที่บริการนั้นใช้ หากคำสั่ง openclaw ในเชลล์มาจาก
การติดตั้งอื่น ตัวอัปเดตจะแสดงรากทั้งสองแห่งและพาธ Node ของบริการ
ที่ได้รับการจัดการ พร้อมทั้งตรวจสอบเวอร์ชัน Node นั้นกับข้อกำหนด
engines.node ของรุ่นเป้าหมายก่อนแทนที่แพ็กเกจ
ทางเลือก: เรียกใช้โปรแกรมติดตั้งอีกครั้ง
curl -fsSL https://openclaw.ai/install.sh | bashเพิ่ม --no-onboard เพื่อข้ามการเริ่มต้นใช้งาน หากต้องการบังคับประเภทการติดตั้งที่ระบุ ให้ส่ง
--install-method git --no-onboard หรือ --install-method npm --no-onboard
หาก openclaw update ล้มเหลวหลังขั้นตอนติดตั้งแพ็กเกจ npm ให้เรียกใช้
โปรแกรมติดตั้งอีกครั้งแทน โปรแกรมติดตั้งจะไม่เรียกตัวอัปเดต แต่จะดำเนินการติดตั้งแพ็กเกจ
แบบโกลบอลโดยตรง และสามารถกู้คืนการติดตั้ง 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 ด้วยตนเอง
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 เป็นเจ้าของบนโฮสต์ของคุณ:
openclaw gateway stopsudo /usr/bin/npm i -g openclaw@latestopenclaw gateway install --forceopenclaw gateway restartจากนั้นตรวจสอบ:
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 ที่ร้องขออย่างชัดเจนหมายถึง "ติดตั้งรุ่นที่เลือกในตอนนี้"
pnpm add -g openclaw@latestbun add -g openclaw@latestหัวข้อขั้นสูงเกี่ยวกับการติดตั้ง npm
Read-only package tree
OpenClaw ถือว่าการติดตั้งแบบโกลบอลจากแพ็กเกจเป็นแบบอ่านอย่างเดียวขณะรันไทม์ แม้ผู้ใช้ปัจจุบันจะมีสิทธิ์เขียนไดเรกทอรีแพ็กเกจแบบโกลบอลก็ตาม การติดตั้งแพ็กเกจ Plugin จะอยู่ในราก npm/git ที่ OpenClaw เป็นเจ้าของภายใต้ไดเรกทอรีการกำหนดค่าของผู้ใช้ และการเริ่มต้น Gateway จะไม่แก้ไขโครงสร้างแพ็กเกจ OpenClaw
การตั้งค่า npm บน Linux บางแบบติดตั้งแพ็กเกจแบบโกลบอลไว้ใต้ไดเรกทอรีที่ root เป็นเจ้าของ เช่น /usr/lib/node_modules/openclaw OpenClaw รองรับโครงสร้างนี้เนื่องจากคำสั่งติดตั้ง/อัปเดต Plugin จะเขียนข้อมูลนอกไดเรกทอรีแพ็กเกจแบบโกลบอลดังกล่าว
Hardened systemd units
ให้สิทธิ์ OpenClaw เขียนไปยังรากการกำหนดค่า/สถานะ เพื่อให้การติดตั้ง Plugin ที่สั่งอย่างชัดเจน การอัปเดต Plugin และการล้างข้อมูลโดย doctor สามารถบันทึกการเปลี่ยนแปลงได้:
ReadWritePaths=/var/lib/openclaw /home/openclaw/.openclaw /tmpDisk-space preflight
ก่อนอัปเดตแพ็กเกจและติดตั้ง Plugin ที่สั่งอย่างชัดเจน OpenClaw จะพยายามตรวจสอบพื้นที่ดิสก์ของโวลุ่มเป้าหมายแบบพยายามอย่างดีที่สุด พื้นที่เหลือน้อยจะสร้างคำเตือนพร้อมพาธที่ตรวจสอบ แต่จะไม่ขัดขวางการอัปเดต เนื่องจากโควตาระบบไฟล์ สแนปช็อต และโวลุ่มเครือข่ายอาจเปลี่ยนแปลงหลังการตรวจสอบ การติดตั้งด้วยตัวจัดการแพ็กเกจจริงและการตรวจสอบหลังการติดตั้งยังคงเป็นข้อมูลชี้ขาด
ตัวอัปเดตอัตโนมัติ
ปิดไว้โดยค่าเริ่มต้น เปิดใช้งานใน ~/.openclaw/openclaw.json:
{ update: { channel: "stable", auto: { enabled: true, stableDelayHours: 6, stableJitterHours: 12, betaCheckIntervalHours: 1, }, },}| ช่องทาง | ลักษณะการทำงาน |
|---|---|
stable |
รอ stableDelayHours (ค่าเริ่มต้น: 6) จากนั้นดำเนินการโดยใช้ค่าคลาดเคลื่อนแบบกำหนดแน่นอนตลอดช่วง stableJitterHours (ค่าเริ่มต้น: 12) เพื่อทยอยเปิดตัว |
extended-stable |
ตรวจสอบคำใบ้การอัปเดตแบบอ่านอย่างเดียวเมื่อเริ่มต้นระบบและทุก 24 ชั่วโมงเมื่อเปิดใช้ checkOnStart โดยจะไม่ดำเนินการอัตโนมัติเด็ดขาด |
beta |
ตรวจสอบทุก betaCheckIntervalHours (ค่าเริ่มต้น: 1) และดำเนินการทันที |
dev |
ไม่มีการดำเนินการอัตโนมัติ ให้ใช้ openclaw update ด้วยตนเอง |
Gateway จะบันทึกคำใบ้การอัปเดตเมื่อเริ่มต้นระบบด้วย (ปิดได้ด้วย
update.checkOnStart: false) ตัวเลือก extended-stable ที่จัดเก็บไว้จะใช้
เส้นทางคำใบ้แบบอ่านอย่างเดียวนี้และช่วงเวลาคำใบ้เดิมที่ 24 ชั่วโมง แต่จะไม่เรียก
การติดตั้งอัตโนมัติ การส่งต่องาน การรีสตาร์ต การหน่วงเวลา/ค่าคลาดเคลื่อนของรุ่นเสถียร หรือการสำรวจรุ่นเบต้า
สำหรับการดาวน์เกรดหรือการกู้คืนจากเหตุขัดข้อง ให้ตั้งค่า 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 เดียวกันนี้ ใน
แอป macOS ที่ลงนามแล้ว การ์ดจะอัปเดตแอปผ่าน Sparkle ก่อน หลังจากเปิดใหม่
แอปจะปรับ Gateway ภายในเครื่องที่ได้รับการจัดการให้เป็นเวอร์ชันเดียวกัน
หลังการอัปเดต
เรียกใช้ doctor
openclaw doctorย้ายรูปแบบการกำหนดค่า ตรวจสอบนโยบาย DM และตรวจสอบสถานะของ Gateway รายละเอียด: Doctor
รีสตาร์ต Gateway
openclaw gateway restartตรวจสอบ
openclaw healthย้อนกลับ
ตรึงเวอร์ชัน (npm)
npm i -g openclaw@<version>openclaw doctoropenclaw gateway restartตรึงคอมมิต (ซอร์ส)
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บนเช็กเอาต์ซอร์ส ตัวอัปเดตจะบูตสแตรปpnpmโดยอัตโนมัติเมื่อจำเป็น หากคุณพบข้อผิดพลาดในการบูตสแตรป pnpm/corepack ให้ติดตั้งpnpmด้วยตนเอง (หรือเปิดใช้corepackอีกครั้ง) แล้วเรียกการอัปเดตอีกครั้ง - ตรวจสอบ: การแก้ไขปัญหา
- สอบถามใน Discord: https://discord.gg/clawd
เนื้อหาที่เกี่ยวข้อง
- ภาพรวมการติดตั้ง: วิธีการติดตั้งทั้งหมด
- Doctor: การตรวจสอบสถานะระบบหลังการอัปเดต
- การย้ายระบบ: คู่มือการย้ายระบบระหว่างเวอร์ชันหลัก