forked from heavy-duty/box
fix: make claude reachable from non-interactive shells in the box
'claudebox exec box -- claude --version' — the exact invocation the help promises — failed on the first live drill: the binary lands in ~/.local/bin, but cloud-init only exported PATH in .bashrc/.zshrc, which the non-interactive shell behind exec never reads (the box's login shell is zsh, so even sudo -i reads neither). A symlink in /usr/local/bin is on every shell's PATH, interactive or not. Found by the drill (#15). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
5c1912a555
commit
9112f9e446
1 changed files with 4 additions and 0 deletions
|
|
@ -49,6 +49,10 @@ runcmd:
|
|||
- curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
|
||||
- apt-get install -y nodejs
|
||||
- sudo -u claude bash -lc 'curl -fsSL https://claude.ai/install.sh | bash'
|
||||
# 'claudebox exec box -- claude …' runs through a NON-interactive shell, which
|
||||
# reads no .bashrc/.zshrc — a PATH export there is invisible to it. The
|
||||
# symlink makes claude reachable from every shell, interactive or not.
|
||||
- ln -sf /home/claude/.local/bin/claude /usr/local/bin/claude
|
||||
- echo 'export PATH="$HOME/.local/bin:$PATH"' >> /home/claude/.bashrc
|
||||
- chsh -s /usr/bin/zsh claude
|
||||
- sudo -u claude bash -lc 'RUNZSH=no CHSH=no sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"'
|
||||
|
|
|
|||
Loading…
Reference in a new issue