Home
avatar

.𝙃𝙤𝙬𝙚

向下滚动

AlmaLinux 9.5 全局安装 Claude Code、vfox 与 ccswitch-cli |环境配置

在 AlmaLinux 9.5 服务器上,需要将 Claude Code CLI、ccswitch-cli 和 vfox 安装到所有用户都可用的系统级路径,并额外安装中文状态栏插件 ccstatusline-zh。本文记录完整的安装过程、所有尝试过的方案、遇到的坑及其解决方式,最终形成一套可复现的操作记录。

环境与目标

  • 操作系统:AlmaLinux 9.5
  • 目标用户:所有系统用户(包括后续新建的用户)
  • 安装工具:Claude Code CLI、ccswitch-cli(SaladDay 版本)、vfox(SDK 版本管理器)、ccstatusline-zh(Claude Code 状态栏)
  • 附加需求:通过 vfox 安装 Node.js 并设置为全局默认版本

基础准备

查看和操作 YUM 仓库文件

在 AlmaLinux 中,YUM/DNF 的仓库配置文件位于 /etc/yum.repos.d/。常用操作:

# 列出所有 repo 文件
ls -l /etc/yum.repos.d/

# 查看具体文件内容
cat /etc/yum.repos.d/claude-code.repo

# 查看已启用的仓库摘要
dnf repolist

用户与权限说明

大部分操作需要 root 权限(写入 /etc/yum.repos.d/、/usr/bin/、/usr/local/bin/、/etc/profile.d/ 等)。建议使用具有 sudo 权限的普通用户执行,或直接切换到 root。

创建专用用户 claude(用于安装 Claude Code 官方安装器):

sudo useradd -m -s /bin/bash claude
sudo passwd claude

安装 vfox(SDK 版本管理器)

vfox 支持通过 YUM 仓库或官方安装脚本两种方式安装。

方案一:通过 YUM 仓库安装(首选)

添加官方仓库并安装:

sudo tee /etc/yum.repos.d/versionfox.repo << 'EOF'
[vfox]
name=VersionFox Repo
baseurl=https://yum.fury.io/versionfox/
enabled=1
gpgcheck=0
EOF

sudo yum install vfox

安装后,执行 vfox --version 却提示 command not found。排查过程如下:

  1. 检查 RPM 包安装的文件:
    rpm -ql vfox | grep -E 'bin|vfox'
    # 输出 /usr/bin/vfox
  2. 尝试刷新 shell 命令缓存:
    hash -r
    vfox --version   # 仍提示 not found
  3. 检查 PATH 环境变量:
    echo $PATH
    # 输出包含 /usr/bin
  4. 尝试绝对路径执行:
    /usr/bin/vfox --version
    # 提示 No such file or directory

结论:RPM 数据库记录 /usr/bin/vfox 存在,但实际文件缺失(可能因安装异常或误删)。解决方法:强制重新安装。

sudo yum reinstall vfox

若 reinstall 不可用,可先 remove 再 install:

sudo yum remove vfox
sudo yum install vfox

重装后,vfox --version 正常显示版本号(本文写作时为 1.0.11)。

方案二:官方安装脚本(备选)

如果 YUM 仓库方式始终有问题,可直接使用官方脚本(安装到 /usr/local/bin):

curl -sSL https://raw.githubusercontent.com/version-fox/vfox/main/install.sh | sudo bash

为所有用户配置 vfox 激活钩子

vfox 需要挂载到 shell 才能实现 vfox use 切换版本。创建全局配置文件 /etc/profile.d/vfox.sh:

echo 'eval "$(vfox activate bash)"' | sudo tee /etc/profile.d/vfox.sh

所有新登录的用户都会自动加载该脚本。当前会话可手动执行以下命令使其生效:

source /etc/profile.d/vfox.sh

使用 vfox 安装 Node.js 并设为全局默认版本

添加 Node.js 插件并安装 LTS 版本(以 22.23.2 为例):

vfox add nodejs
vfox search nodejs   # 交互式选择版本,或直接指定
vfox install nodejs@22.23.2

安装完成后,通过 -g 选项将其设为系统全局默认版本(所有用户共用):

vfox use -g nodejs@22.23.2

验证:

node --version   # v22.23.2
npm --version    # 10.9.8

安装 Claude Code CLI

Claude Code 可通过 DNF 仓库或官方安装器安装。

方案一:DNF 仓库(尝试后失败)

尝试添加第三方 COPR 仓库 bahram-f73/claude-code:

sudo tee /etc/yum.repos.d/claude-code.repo << 'EOF'
[claude-code]
name=Claude Code
baseurl=https://download.copr.fedorainfracloud.org/results/bahram-f73/claude-code/almalinux-9-$basearch/
type=rpm-md
gpgcheck=1
gpgkey=https://download.copr.fedorainfracloud.org/results/bahram-f73/claude-code/pubkey.gpg
repo_gpgcheck=0
enabled=1
EOF

sudo dnf install claude-code

执行后报错:

Errors during downloading metadata for repository 'claude-code':
  - Status code: 404 for https://packages.redhat.com/api/pulp-content/public-copr/bahram-f73/claude-code/almalinux-9-x86_64/repodata/repomd.xml
Error: Failed to download metadata for repo 'claude-code'

原因:该仓库不提供 almalinux-9 的包。解决方案:移除该仓库,改用官方安装器。

sudo rm /etc/yum.repos.d/claude-code.repo

方案二:官方安装器(成功)

官方脚本默认安装到用户目录 ~/.local/bin,需手动移至全局路径。建议使用普通用户 claude 执行安装,避免 root 权限问题。

# 切换到 claude 用户
su - claude
curl -fsSL https://claude.ai/install.sh | bash
# 安装完成,退出
exit

# 将 claude 命令移动到全局目录
sudo mv /home/claude/.local/bin/claude /usr/local/bin/

若已在 root 下执行,则移动路径为 /root/.local/bin/claude。

验证:

claude --version

安装 ccswitch-cli(SaladDay 版本)

ccswitch-cli 用于在 Claude Code 的不同 provider 之间切换,推荐使用 SaladDay/cc-switch-cli。

快速安装脚本

curl -fsSL https://github.com/SaladDay/cc-switch-cli/releases/latest/download/install.sh | bash

该脚本默认将 cc-switch 安装到 ~/.local/bin。若需强制覆盖已存在的文件,可设置环境变量:

CC_SWITCH_FORCE=1 curl -fsSL https://github.com/SaladDay/cc-switch-cli/releases/latest/download/install.sh | bash

安装后,将二进制移动到全局路径:

sudo mv ~/.local/bin/cc-switch /usr/local/bin/

验证:

cc-switch --version

注意:该工具的命令名是 cc-switch(带连字符),而非 ccswitch。

备选方案:手动下载

也可从 GitHub Releases 页面下载对应系统的压缩包,解压后直接放入 /usr/local/bin:

# 示例(实际版本号需替换)
wget https://github.com/SaladDay/cc-switch-cli/releases/latest/download/cc-switch-linux-amd64-musl.tar.gz
tar -xzf cc-switch-linux-amd64-musl.tar.gz
sudo mv cc-switch /usr/local/bin/

安装 ccstatusline-zh(Claude Code 中文状态栏)

ccstatusline-zh 为 Claude Code 提供中文状态栏,支持显示当前模型、Token 用量、Git 分支等信息。它通过 npm 全局安装。

全局安装

确保 Node.js 已全局可用(上一步已通过 vfox 设置),然后以 root 执行:

npm install -g ccstatusline-zh

从 v2.2.14 版本开始,安装过程中会弹出 TUI 配置界面,可选择“固定全局安装”等选项,按提示操作即可。

配置 Claude Code 启用状态栏

编辑 Claude Code 的全局配置文件 ~/.claude/settings.json(每个用户需单独配置,或拷贝模板到 /etc/skel 以便新用户继承)。添加以下内容:

{
  "statusLine": {
    "type": "command",
    "command": "ccstatusline-zh",
    "padding": 0
  }
}

保存后重启 Claude Code,即可看到中文状态栏。

自定义状态栏

ccstatusline-zh 提供了交互式配置界面,可自由增删显示组件、调整顺序、切换 Powerline 主题:

ccstatusline-zh setup

完整验证

以任意普通用户(如 claude)登录,执行以下命令均应正常输出版本信息:

claude --version
cc-switch --version
vfox --version
node --version
npm --version
ccstatusline-zh --version

若所有命令均可用,则全局安装成功。

遇到的问题与解决方案汇总

问题原因解决
dnf install claude-code 报 404COPR 仓库不提供 almalinux-9 的包移除该仓库,改用官方安装器
vfox 安装后提示 command not foundRPM 文件记录与文件系统不一致yum reinstall vfox
vfox use 提示需要 hook 支持当前 shell 未加载激活脚本执行 source /etc/profile.d/vfox.sh
cc-switch 安装后找不到命令二进制在用户目录,不在系统 PATH移动到 /usr/local/bin
hash -r 后仍找不到命令文件确实不存在,与缓存无关检查绝对路径,确认文件缺失
rehash 命令未找到bash 中无此命令,仅 csh 系列使用 hash -r 或重启 shell

总结

  • 安装系统级工具时,优先考虑官方提供的方式;若默认安装到用户目录,需手动移至 /usr/local/bin。
  • 对于 RPM 包安装后命令缺失,yum reinstall 是有效的修复手段;同时可通过 rpm -ql、ls -l 等命令排查文件是否真实存在。
  • vfox 的全局钩子通过 /etc/profile.d/ 实现,-g 选项可为所有用户设置默认 SDK 版本。
  • Claude Code 的生态工具(cc-switch、ccstatusline-zh)多基于 Node.js,需确保 Node.js 环境全局可用。
  • 遇到仓库 404 等错误,应果断切换至官方安装方式,避免浪费时间。
  • 本文记录的所有命令均在 AlmaLinux 9.5 上验证通过,可复用于其他 RHEL 系发行版(如 Rocky Linux、CentOS Stream)。
AlmaLinux vfox Claude Code 全局安装 环境配置