常见安装问题

Linux 权限问题

当使用 npm 安装 Claude Code 时,如果您的 npm 全局前缀目录不可写(例如 /usr/usr/local),您可能会遇到权限错误。

推荐解决方案:创建用户可写的 npm 前缀

最安全的方法是将 npm 配置为使用您的主目录中的目录:

# 首先,保存现有全局包的列表以供后续迁移
npm list -g --depth=0 > ~/npm-global-packages.txt

# 为全局包创建目录
mkdir -p ~/.npm-global

# 配置 npm 使用新的目录路径
npm config set prefix ~/.npm-global

# 注意:根据您的 shell 将 ~/.bashrc 替换为 ~/.zshrc、~/.profile 或其他适当的文件
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc

# 应用新的 PATH 设置
source ~/.bashrc

# 现在在新位置重新安装 Claude Code
npm install -g @anthropic-ai/claude-code

# 可选:在新位置重新安装之前的全局包
# 查看 ~/npm-global-packages.txt 并安装您想保留的包

推荐这个解决方案是因为它:

  • 避免修改系统目录权限
  • 创建一个干净的、专用的全局 npm 包位置
  • 遵循安全最佳实践

系统恢复:如果您已运行更改系统文件所有权和权限的命令

如果您已经运行了更改系统目录权限的命令(例如 sudo chown -R $USER:$(id -gn) /usr && sudo chmod -R u+w /usr)并且您的系统现在已损坏(例如,如果您看到 sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set),您需要执行恢复步骤。

Ubuntu/Debian 恢复方法:
  1. 重启时,按住 SHIFT 键访问 GRUB 菜单

  2. 选择”Advanced options for Ubuntu/Debian”

  3. 选择恢复模式选项

  4. 选择”Drop to root shell prompt”

  5. 将文件系统重新挂载为可写:

    mount -o remount,rw /
    
  6. 修复权限:

    # 恢复 root 所有权
    chown -R root:root /usr
    chmod -R 755 /usr
    
    # 确保 /usr/local 由您的用户拥有以用于 npm 包
    chown -R YOUR_USERNAME:YOUR_USERNAME /usr/local
    
    # 为关键二进制文件设置 setuid 位
    chmod u+s /usr/bin/sudo
    chmod 4755 /usr/bin/sudo
    chmod u+s /usr/bin/su
    chmod u+s /usr/bin/passwd
    chmod u+s /usr/bin/newgrp
    chmod u+s /usr/bin/gpasswd
    chmod u+s /usr/bin/chsh
    chmod u+s /usr/bin/chfn
    
    # 修复 sudo 配置
    chown root:root /usr/libexec/sudo/sudoers.so
    chmod 4755 /usr/libexec/sudo/sudoers.so
    chown root:root /etc/sudo.conf
    chmod 644 /etc/sudo.conf
    
  7. 重新安装受影响的包(可选但推荐):

    # 保存已安装包的列表
    dpkg --get-selections > /tmp/installed_packages.txt
    
    # 重新安装它们
    awk '{print $1}' /tmp/installed_packages.txt | xargs -r apt-get install --reinstall -y
    
  8. 重启:

    reboot
    
替代 Live USB 恢复方法:

如果恢复模式不起作用,您可以使用 Live USB:

  1. 从 Live USB 启动(Ubuntu、Debian 或任何 Linux 发行版)

  2. 找到您的系统分区:

    lsblk
    
  3. 挂载您的系统分区:

    sudo mount /dev/sdXY /mnt  # 将 sdXY 替换为您实际的系统分区
    
  4. 如果您有单独的引导分区,也要挂载它:

    sudo mount /dev/sdXZ /mnt/boot  # 如果需要
    
  5. Chroot 进入您的系统:

    # 对于 Ubuntu/Debian:
    sudo chroot /mnt
    
    # 对于基于 Arch 的系统:
    sudo arch-chroot /mnt
    
  6. 按照上面的 Ubuntu/Debian 恢复方法中的步骤 6-8 操作

恢复系统后,按照上面的推荐解决方案设置用户可写的 npm 前缀。

自动更新器问题

如果 Claude Code 无法自动更新,可能是由于 npm 全局前缀目录的权限问题。按照上面的推荐解决方案修复此问题。

如果您更愿意禁用自动更新器,可以使用:

claude config set -g autoUpdaterStatus disabled

权限和认证

重复的权限提示

如果您发现自己反复批准相同的命令,可以允许特定工具在不需要批准的情况下运行:

# 让 npm test 无需批准即可运行
claude config add allowedTools "Bash(npm test)"

# 让 npm test 及其所有子命令无需批准即可运行
claude config add allowedTools "Bash(npm test:*)"

认证问题

如果您遇到认证问题:

  1. 运行 /logout 完全退出
  2. 关闭 Claude Code
  3. 使用 claude 重新启动并完成认证过程

如果问题仍然存在,请尝试:

rm -rf ~/.config/claude-code/auth.json
claude

这将删除您存储的认证信息并强制进行清洁登录。

性能和稳定性

CPU 或内存使用率高

Claude Code 设计用于适应大多数开发环境,但在处理大型代码库时可能会消耗大量资源。如果您遇到性能问题:

  1. 定期使用 /compact 减少上下文大小
  2. 在主要任务之间关闭并重启 Claude Code
  3. 考虑将大型构建目录添加到 .gitignore.claudeignore 文件中

命令挂起或冻结

如果 Claude Code 看起来没有响应:

  1. 按 Ctrl+C 尝试取消当前操作
  2. 如果无响应,您可能需要关闭终端并重新启动
  3. 对于持续存在的问题,使用详细日志运行 Claude:claude --verbose

获取更多帮助

如果您遇到此处未涉及的问题:

  1. 在 Claude Code 中使用 /bug 命令直接向 Anthropic 报告问题
  2. 查看 GitHub 仓库了解已知问题
  3. 运行 /doctor 检查您的 Claude Code 安装的健康状况