콘텐츠로 이동

[보관] 38. OpenClaw 설치 시도 — placeholder 패키지 발견 (미완)

시각: 2026-04-28 13:4013:43 KST (원본 jsonl: logs/history-unset.jsonl 의 session c0243ab4-1a3a-40a0-a687-66f1239ba60b2026-04-28T04:40:51Z04:43:17Z UTC)

셋업 단계 종료 선언. 본 entry로 hamster-lab의 셋업/설계/인프라 단계(0138)는 마무리한다. 다음 entry(39)부터 history/에는 본실험 중 발생하는 메타 결정(평가 프레임 자체 변경, 트랙 재설계, 채집 양식 갱신 등)만 들어간다. 본실험의 일상 진행 기록은 experiments/P{N}-journal.md(probe별)·runs/daily-log/YYYY-MM-DD-{track}.md(트랙별)·logs/history-${EXPERIMENT_TOOL}.jsonl(자동 raw)로 분산한다.

  1. 사용자가 OpenClaw 공식 URL 제공 → https://openclaw.ai/ (200 OK, 218.9KB) 페치. 안내 명령은 curl -fsSL ... | bash 또는 npm i -g openclaw.
  2. 환경 점검: Node v20.17.0, npm 10.8.2, /usr/local/bin/npm.
  3. install.sh 다운로드만 해서 본문 확인 — 2,960줄, set -euo pipefail Bash, ANSI 색 코드 다수, Node 셋업·환경 격리 헬퍼. bash로 바로 실행하지 않고 npm 직접 시도 우회 결정.
  4. npm i -g openclawEACCES (/usr/local/lib/node_modules/openclaw mkdir 권한 없음, sudo 미사용).
  5. C3(환경 격리) 원칙에 맞춰 mkdir -p ~/.openclaw && npm i -g --prefix ~/.openclaw openclaw → “added 1 package in 439ms” — 설치 자체는 성공.
  6. 결과 검증: ~/.openclaw/bin/ 존재하지 않음, lib/만 있음. package.json 확인:
    name: openclaw
    version: 0.0.1
    bin: None
    description: Empty placeholder package.
    index.jsmodule.exports = {}.
  7. 불일치 발견: 사이트 안내(npm i -g openclaw)와 npm 레지스트리 실태(빈 placeholder)가 일치하지 않음. 실제 배포 경로는 다른 곳일 가능성.
  8. https://github.com/openclaw/openclaw 페치(780.7KB, 200 OK)까지 진행 — 실제 install 경로(GitHub release vs install.sh 본문에서 끌어오는 자체 binary 등) 확인 시도. 이 시점에 사용자가 “이런 과정도 다 기록되도록 셋팅됐어?” 질문으로 전환 → 추적 중단.
  • install.sh 직접 실행 우회: 2,960줄짜리 Node 셋업 헬퍼는 (a) 시스템 PATH·~/.npmrc 등을 건드릴 가능성, (b) C3 격리 원칙과 충돌 가능성. Node가 이미 있는 환경이라 npm 직접 호출이 더 투명·재현 가능하다고 판단.
  • --prefix ~/.openclaw: sudo로 /usr/local에 까는 대신 사용자 홈 격리 — Hermes를 ~/.hermes에 격리한 선례(22번 entry)와 동일 패턴. 트랙 간 오염 방지.
  • placeholder 확인 시점에 즉시 멈춤: empty package 위에 더 진행하면 거짓 양성(설치 성공처럼 보이지만 동작 없음)이 누적될 위험. 사이트와 레지스트리의 신호 불일치는 install 경로 자체의 가정을 바꿔야 한다는 신호로 해석.
  • 버린 옵션: (a) sudo npm i -g로 권한 우회 — C3 위반. (b) install.sh를 그대로 실행 — 본문 미분석 상태로 환경 변경 위험. (c) placeholder 위에 다른 명령 시도 — 불일치 원인 파악 전 무의미.
  • OpenClaw 실제 설치 경로 확정 (39번 후보): install.sh 본문 정밀 분석(GitHub release tarball을 어디로 떨어뜨리는지·PATH 어떻게 잡는지) → C3 격리 호환성 판정 → 그에 맞춰 재시도. GitHub clone+로컬 빌드도 옵션.
  • placeholder 잔재 정리: ~/.openclaw/lib/node_modules/openclaw/ 비워두기(실제 OpenClaw 설치 시 충돌 방지). 다음 시도 직전에 rm -rf ~/.openclaw && mkdir -p ~/.openclaw.
  • 본 entry는 “실패 시도” 카테고리 — 컨벤션상 실패도 정식 entry. 05-hook-impl-v1-jq-fail 선례.
  • 셋업 단계 종료 — 다음 history entry는 본실험 진행 중 메타 결정 발생 시. 본실험의 일상 진행은 experiments/P{N}-journal.md·runs/daily-log/·자동 jsonl에 분산. 분리 결정 자체는 사용자와 같은 세션에서 합의됨(이 entry와 동시).