Skip to content

Commit eed9cc3

Browse files
author
박성모
committed
docs(manual-install): clarify upstream vs tool update — openclaw update refreshes upstream/images/models, git pull refreshes the tool itself + schedule + pin (KO+EN)
1 parent 7abcb2d commit eed9cc3

1 file changed

Lines changed: 106 additions & 7 deletions

File tree

docs/GUIDE-MANUAL-INSTALL.md

Lines changed: 106 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -256,21 +256,70 @@ sudo ln -sf "$HOME/DEV/openclaw-workspace/openclaw-mgr/openclaw" /opt/homebrew/b
256256

257257
### 7단계 — 업데이트는 어떻게?
258258

259-
수동 설치 모드에서는 **Git 으로 직접 갱신**:
259+
> **OpenClaw 본체가 업데이트되면 내 도구도 자동으로 업데이트되나요?**
260+
>
261+
> **아니요.** 두 저장소는 서로 독립적인 git 저장소이며 따로 갱신해야 합니다.
262+
>
263+
> | 무엇 | 어떻게 갱신 | 무엇이 갱신되나 |
264+
> |---|---|---|
265+
> | 🟢 내 도구 (`openclaw-workspace`) | `git pull` (수동 모드) 또는 `openclaw self-update` (brew 모드) | `openclaw` CLI, `lib/`, `cmd/`, 보안 override, 가이드 문서 |
266+
> | 🔵 OpenClaw 본체 (`~/openclaw`) | `openclaw update` ← 내 도구가 알아서 본체 git pull + 이미지 pull + 모델 pull 까지 | 본체 코드, Docker 이미지, Ollama 모델 |
267+
>
268+
> **내 도구만 최신 ≠ 본체도 최신**. 둘 다 최신으로 두고 싶으면 두 명령을 차례로 돌리세요.
269+
270+
#### 매번 하는 표준 절차 (수동 설치 모드)
271+
260272
```bash
273+
# 1) 내 도구(workspace) 갱신
261274
cd ~/DEV/openclaw-workspace
262275
git pull --ff-only
263-
./openclaw-mgr/openclaw update # 컨테이너/모델 갱신
276+
277+
# 2) 본체(OpenClaw) + 컨테이너 이미지 + 모델 갱신 (한 명령)
278+
./openclaw-mgr/openclaw update
279+
280+
# 3) 둘 다 ✓ 인지 확인
281+
./openclaw-mgr/openclaw doctor
282+
```
283+
284+
#### `openclaw update` 가 내부적으로 하는 일
285+
264286
```
287+
openclaw update
288+
├── network online (잠깐 외부 허용)
289+
├── cd ~/openclaw && git pull --ff-only ← 본체 코드 갱신
290+
├── docker compose pull ← 본체 이미지 갱신
291+
├── docker compose up -d ← 새 이미지로 재기동
292+
├── ollama pull <OLLAMA_MODELS 의 각 모델> ← 모델 갱신
293+
└── network isolated (다시 잠금)
294+
```
295+
296+
#### 자동화 — 매일 새벽에 본체까지 자동 업데이트
265297

266-
특정 안정 버전으로 고정하고 싶으면:
298+
```bash
299+
./openclaw-mgr/openclaw schedule enable # 매일 03:00 (기본) 에 launchd 가 `openclaw update` 자동 실행
300+
./openclaw-mgr/openclaw schedule status # 다음 실행 시각 확인
301+
./openclaw-mgr/openclaw schedule disable # 끄기
302+
```
303+
304+
> `schedule`**본체 update** 만 자동 실행합니다. 내 도구(workspace) 의 `git pull` 은 자동화하지 않습니다 — 도구가 깨져 있으면 자동복구가 위험하므로. 내 도구는 가끔 직접 `git pull` 권장.
305+
306+
#### 특정 버전에 고정 (Pin to a stable tag)
307+
308+
내 도구를 특정 안정 버전으로:
267309
```bash
268310
cd ~/DEV/openclaw-workspace
269311
git fetch --tags
270312
git checkout v0.1.6
271313
```
272314

273-
> ⚠️ 수동 설치 환경에서는 `openclaw self-update` 가 의도적으로 비활성됩니다 (Homebrew formula 가 아니므로). 항상 `git pull` 을 쓰세요.
315+
본체를 특정 커밋으로 고정 (공급망 공격 방어용):
316+
```bash
317+
$EDITOR ~/.openclaw-mgr/.env
318+
# OPENCLAW_PIN_COMMIT="abc1234..."
319+
./openclaw-mgr/openclaw update
320+
```
321+
322+
> ⚠️ 수동 설치 환경에서는 `openclaw self-update` 가 의도적으로 비활성됩니다 (Homebrew formula 가 아니므로). 내 도구는 항상 `git pull` 을 쓰세요.
274323
275324
### ❓ 자주 막히는 부분
276325

@@ -539,20 +588,70 @@ sudo ln -sf "$HOME/DEV/openclaw-workspace/openclaw-mgr/openclaw" /opt/homebrew/b
539588

540589
### Step 7 — Updating
541590

542-
In manual mode you update via Git:
591+
> **If OpenClaw upstream updates, does my tool update automatically?**
592+
>
593+
> **No.** They are independent git repos and must be updated separately.
594+
>
595+
> | What | How to update | What it refreshes |
596+
> |---|---|---|
597+
> | 🟢 This tool (`openclaw-workspace`) | `git pull` (manual mode) or `openclaw self-update` (brew mode) | `openclaw` CLI, `lib/`, `cmd/`, security overrides, guide docs |
598+
> | 🔵 OpenClaw upstream (`~/openclaw`) | `openclaw update` ← this tool runs upstream `git pull` + image pull + model pull for you | Upstream code, Docker images, Ollama models |
599+
>
600+
> So **tool up-to-date ≠ upstream up-to-date**. Run both to keep everything fresh.
601+
602+
#### Standard refresh (manual mode)
603+
543604
```bash
605+
# 1) Update this tool (workspace)
544606
cd ~/DEV/openclaw-workspace
545607
git pull --ff-only
608+
609+
# 2) Update upstream + container images + models (one command)
546610
./openclaw-mgr/openclaw update
611+
612+
# 3) Verify
613+
./openclaw-mgr/openclaw doctor
614+
```
615+
616+
#### What `openclaw update` does internally
617+
618+
```
619+
openclaw update
620+
├── network online (briefly allow outbound)
621+
├── cd ~/openclaw && git pull --ff-only ← upstream code
622+
├── docker compose pull ← upstream images
623+
├── docker compose up -d ← restart with new images
624+
├── ollama pull <each model in OLLAMA_MODELS> ← refresh models
625+
└── network isolated (lock back down)
547626
```
548627

549-
Pin to a specific stable tag:
628+
#### Automate it — daily upstream update via launchd
629+
630+
```bash
631+
./openclaw-mgr/openclaw schedule enable # default 03:00 daily, runs `openclaw update`
632+
./openclaw-mgr/openclaw schedule status
633+
./openclaw-mgr/openclaw schedule disable
634+
```
635+
636+
> `schedule` only auto-runs **upstream update**. It does NOT auto-pull this tool — auto-recovering a broken tool is risky. Pull this tool by hand occasionally.
637+
638+
#### Pin to a specific version
639+
640+
This tool to a stable tag:
550641
```bash
642+
cd ~/DEV/openclaw-workspace
551643
git fetch --tags
552644
git checkout v0.1.6
553645
```
554646

555-
> ⚠️ `openclaw self-update` is intentionally disabled in manual mode (it's only for the Homebrew formula). Always use `git pull`.
647+
Upstream to a specific commit (supply-chain hardening):
648+
```bash
649+
$EDITOR ~/.openclaw-mgr/.env
650+
# OPENCLAW_PIN_COMMIT="abc1234..."
651+
./openclaw-mgr/openclaw update
652+
```
653+
654+
> ⚠️ `openclaw self-update` is intentionally disabled in manual mode (it's only for the Homebrew formula). Always use `git pull` for this tool in manual mode.
556655
557656
### ❓ Common pitfalls
558657

0 commit comments

Comments
 (0)