setup.sh: symlink claude into /usr/local/bin
The Claude sidecar execs /usr/local/bin/claude (claude-manager.ts), but the Anthropic installer only puts the CLI in ~/.local/bin — so on a fresh host that path doesn't exist and claude chat fails with "ENOENT … posix_spawn '/usr/local/bin/claude'". Symlink ~/.local/bin/claude → /usr/local/bin/claude after install (idempotent; tracks Claude's self-updates). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -734,6 +734,21 @@ else
|
|||||||
if has claude; then ok "claude-code installed"; else warn "claude-code install failed"; fi
|
if has claude; then ok "claude-code installed"; else warn "claude-code install failed"; fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# The platform's Claude sidecar execs /usr/local/bin/claude (a stable, sandbox-visible path). The
|
||||||
|
# installer only drops the CLI in ~/.local/bin, so symlink it there — pointing at the ~/.local/bin
|
||||||
|
# launcher so it keeps tracking Claude's self-updates. Without this, claude chat ENOENTs on a fresh host.
|
||||||
|
CLAUDE_LOCAL="$HOME/.local/bin/claude"
|
||||||
|
if [ -e "$CLAUDE_LOCAL" ]; then
|
||||||
|
if [ "$(readlink -f /usr/local/bin/claude 2>/dev/null)" != "$(readlink -f "$CLAUDE_LOCAL")" ]; then
|
||||||
|
sudo ln -sf "$CLAUDE_LOCAL" /usr/local/bin/claude
|
||||||
|
ok "claude symlinked to /usr/local/bin/claude"
|
||||||
|
else
|
||||||
|
skip "claude symlink at /usr/local/bin/claude"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
warn "claude not found at $CLAUDE_LOCAL — /usr/local/bin/claude symlink skipped"
|
||||||
|
fi
|
||||||
|
|
||||||
# pm2 (process manager)
|
# pm2 (process manager)
|
||||||
if has pm2; then
|
if has pm2; then
|
||||||
skip "pm2"
|
skip "pm2"
|
||||||
|
|||||||
Reference in New Issue
Block a user