在 Chocolatey、Termux、Funtoo 与 Nix 生态中安装 Starship:进阶安装完全指南
本文基于仓库
docs/es-ES/installing/README.md(Advanced Installation 西班牙语文档)整理编写。文中涉及的仓库文件均以starship仓库根目录下的相对路径给出,便于读者对照查阅。
导读
Starship 的安装可以拆成两步:先把 starship 二进制文件放到机器上,再让 shell 的初始化脚本加载它作为提示符。绝大多数主流平台在官方安装指南中即可一步到位;但对于 Chocolatey(Windows)、Termux(Android)、Funtoo Linux、Nix/NixOS 这类「更专业」的发行与包管理生态,往往需要更细化的指引。本文以仓库内的西班牙语进阶安装文档为主体,逐平台给出可复制的安装命令与声明式配置范例,并对照仓库源码与打包脚本,解释 choco install starship、pkg install starship、emerge app-shells/starship 以及 Nix 三种使用形态背后的实际工作原理。
Starship 安装的两步通用模型
无论哪种平台,安装 Starship 都遵循同一模型:
- 获取
starship二进制文件并将其安装到本机; - 修改 shell 的启动脚本,让它以 Starship 的二进制作为提示符来源(例如 Bash 下在
~/.bashrc末尾追加eval "$(starship init bash)")。
对大多数用户而言,主文档的安装章节已经覆盖 Bash、Cmd、Elvish、Fish、PowerShell、Nushell、Tcsh、Xonsh、Zsh 等 shell 的「第二步」配置方式,而仓库的 src/init/ 目录则保留着全部官方 init 脚本实现,例如 starship.bash、starship.ps1、starship.zsh 等,读者在完成本文的二进制安装后,可按需查阅。以下平台的特殊安装说明,关注的核心是第一点:如何以该生态最地道的方式取得二进制。
Windows:通过 Chocolatey 安装
前置条件
Chocolatey 是一个 Windows 包管理器。官方文档要求用户先前往 Chocolatey 官网按其安装页面完成 Chocolatey 自身的安装,再执行 Starship 安装命令。
安装命令
在管理员权限的 PowerShell 中执行:
choco install starship
源码佐证:Chocolatey 包的三种形态
仓库中保存着该包的打包来源与安装脚本:
- starship.nuspec 是包的元数据清单,定义包名为
starship、作者为 Starship Contributors,并将chocolateyInstall.ps1打包进tools/目录; - update.ps1 是发布期的自动打包脚本:它按
STARSHIP_VERSION环境变量读取版本号,把 Starship 官方 release 中 x86_64/i686 的 MSI 与 ZIP 下载地址及 SHA256 校验和注入安装脚本,随后生成三个变体包并发布到 Chocolatey 社区源; - chocolateyInstall.install.ps1 对应
starship.install(走 MSI,以/qn静默参数安装,静默日志写入临时目录,合法退出码包含 0/3010/1641,其中 3010、1641 表示需重启); - chocolateyInstall.portable.ps1 对应
starship.portable(走 ZIP,下载后解压到包 tools 目录,无需系统级安装); - 元包
starship本身不再携带安装逻辑,而是通过依赖关系指向starship.install。
从源码结构可以推断,choco install starship 实际安装的是 MSI 版,而希望「解压即用、不写注册表」的用户可以选择 portable 变体。两个安装脚本完成后都会提示:将以下内容追加到 PowerShell 配置文件 ~\Documents\PowerShell\Microsoft.PowerShell_profile.ps1 末尾,完成「第二步」:
Invoke-Expression (&starship init powershell)
小提示:MSI 安装方式会把
starship.exe写入系统路径;若之后要升级,直接再次choco upgrade starship即可复用同一套包逻辑。
Android:通过 Termux 安装
Termux 是 Android 上的终端模拟器与 Linux 环境。Starship 已进入 Termux 官方源,因此只需在 Termux 的 shell 中执行:
pkg install starship
pkg 会基于 Termux 仓库解析并安装 Starship 及其运行时依赖。装好后,为 Termux 默认的 Bash 追加初始化即可:
echo 'eval "$(starship init bash)"' >> ~/.bashrc
随后重新打开会话,或执行 exec bash 让提示符生效。若你使用的是 zsh,则把上述内容替换为 eval "$(starship init zsh)" 写入 ~/.zshrc。
Funtoo Linux:通过 Portage 安装
Funtoo Linux 是 Gentoo 的衍生发行版,同样以 Portage 作为包管理器。Starship 位于 Funtoo 的 core-kit(1.4-release 分支的 app-shells/starship 位置)中,可直接 emerge:
emerge app-shells/starship
emerge 会从源码编译(或按 USE 配置取用二进制包)并安装 starship 可执行文件。随后在 ~/.bashrc(或所用 shell 的配置)中加入:
eval "$(starship init bash)"
Nix 生态:命令式、单用户声明式与 NixOS 全系统声明式
Nix 是本文档中形式最丰富的一节,官方提供了三种使用方式,分别对应命令式与两类声明式场景。三条路径殊途同归:最终都在环境中加入 starship 二进制,并需要在 shell 配置中完成 init 接入。
方式一:命令式安装(Imperative)
对 Nix 用户(通常为 NixOS 或带 nix 单用户安装的系统),可直接在当前环境中临时安装:
nix-env -iA nixos.starship
nix-env -iA 依据属性路径(attribute path)安装;nixos.starship 表示从 nixos channel / nixpkgs 中解析 starship 属性。注意:该命令作用于当前用户 profile,属命令式、非可复现状态。
方式二:单用户声明式(home-manager)
声明式管理更利于复现与版本控制。若使用 [home-manager],在其入口文件 home.nix 中启用 programs.starship 模块并写入设置:
{
programs.starship = {
enable = true;
# 配置写入 ~/.config/starship.toml
settings = {
# add_newline = false;
# character = {
# success_symbol = "➜";
# error_symbol = "➜";
# };
# package.disabled = true;
};
};
}
然后执行:
home-manager switch
该模块的意义在于:enable = true 会自动把 starship 放入用户的 PATH,并按 settings 生成 ~/.config/starship.toml。settings 中的键直接对应 Starship 配置格式——例如被注释的 character.success_symbol = "➜" 就是修改提示符箭头为粗体绿色,package.disabled = true 则用于关闭语言包版本模块。你完全可以把这套 settings 视为与手写 starship.toml 等价、但可被 Nix 统一管理的声明式配置。
方式三:NixOS 全系统声明式
若使用 NixOS,将 pkgs.starship 加入系统的软件包列表:
{ config, pkgs, ... }:
{
environment.systemPackages = [ pkgs.starship ];
}
以上片段应并入你的 configuration.nix,随后执行:
sudo nixos-rebuild switch
nixos-rebuild switch 会重新构建系统,把 pkgs.starship 安装到全系统环境中(所有用户可用)。注意,全系统安装只解决「二进制可得」问题;每个用户仍需在各自 shell 配置里执行 starship init 才能把提示符切换到 Starship。若希望系统级默认对所有用户生效,一般仍推荐结合 home-manager 或 shell profile 管理(例如通过 /etc/profile 或 programs.bash.interactiveShellInit 注入初始化),具体取决于你的管理粒度偏好。
Nix 路径小结
| 使用形态 | 声明式 | 作用范围 | 关键命令/模块 |
|---|---|---|---|
nix-env -iA nixos.starship |
否 | 当前用户 profile | nix-env |
programs.starship(home-manager) |
是 | 当前用户 | home-manager switch |
environment.systemPackages(NixOS) |
是 | 全系统 | sudo nixos-rebuild switch |
从源码看官方安装脚本与 init 链路
进阶安装平台之外的通用二进制获取,官方统一推荐 curl -sS https://starship.rs/install.sh | sh,该脚本的完整实现保存在 install/install.sh。从源码可以看到,它:
- 声明了从
x86_64-unknown-linux-gnu到aarch64-apple-darwin、x86_64-pc-windows-msvc再到riscv64gc-unknown-linux-musl等一系列受支持的编译目标(SUPPORTED_TARGETS),据此选择对应平台的预编译二进制; - 会在安装前检查运行环境,明确拒绝用 zsh 或非 POSIX 模式的 bash 直接执行安装脚本(
verify_shell_is_posix_or_exit),提示改用sh,以避免 zsh/bash 解析差异导致的失败; - 内部包含临时文件、写权限探测与下载安装的完整流程。
这解释了为什么该脚本要在 sh 下运行,也侧面印证:包管理器安装(如本文的 choco/pkg/emerge/nix)是绕过脚本、由各发行版负责搬运二进制的替代路线。
二进制就位之后,通用的「第二步」——shell init——可参考仓库 src/init/ 目录中与 shell 一一对应的脚本(starship.bash、starship.fish、starship.zsh、starship.ps1 等),以及主指南中的分 shell 表格。例如 PowerShell 使用 Invoke-Expression (&starship init powershell),Bash 使用 eval "$(starship init bash)";starship init <shell> 实际会输出一段由当前 shell 解释执行的初始化代码,完成提示符绘制与按键处理的绑定。
常见问题与后续路径
- 装完没有变化? 确认 init 行已加入当前实际使用的 shell 配置文件,并重开终端或
source配置;若使用 zsh 却写入了~/.bashrc,自然不会生效。 - 图标/字体显示为方块? Starship 依赖 [Nerd Font],主指南将其列为安装前置条件;安装并启用 Nerd Font 后重开终端即可。
- 如何自定义? 安装完成后的一切展示行为都受
~/.config/starship.toml(home-manager 场景则由 Nixsettings生成)控制。完整的模块与配置项文档见 配置指南 与 预设合集,进阶玩法可阅读 高级配置。 - 遇到迁移问题? 若你从旧版本升级,可对照 0.45.0 迁移指南 了解配置变更;仓库根目录的 CHANGELOG.md 记录了各版本行为变化。
- 你的平台不在本文列表? 原文档的作者建议:若你在其他发行版/生态上摸索出了可行的安装方式,可将其补充进该进阶安装文档,供后续用户复用——这正是这份文档被设计为「主 README 装不下的长尾平台合集」的原因。
综上,本文基于关联文档 docs/es-ES/installing/README.md 完成,文章已完整继承原文档的 Chocolatey、Termux、Funtoo Linux 与 Nix 三种形态的安装指引与配置示例,并结合仓库中 install/windows/choco/、install/install.sh、src/init/ 等源码文件进行了深化说明;正文未引用仓库图片(该文档主题为安装流程,仓库 media 中无强相关架构图或流程截屏),所有内部链接均已转换为仓库根目录相对路径。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0627
Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家(MoE)旗舰模型。模型总参数量 770B,每个 token 激活 49B,主干共包含78层,第一层采用标准 FFN,其余 77 层均为 MoE 结构,每层包含 256 个路由专家与 1 个共享专家,每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP(总参数量 10B,激活 0.7B)以支持投机解码。Python00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
GLM-5.3-FlashGLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2Jinja00
Spark-X2.5-4BSpark-X2.5-4B 旨在让强大的 AI 更实用、更高效、更易获得。在广泛日常任务中表现强劲,涵盖对话、写作、翻译、推理、编码、工具调用以及智能体工作流,并在同等规模的开源模型中取得领先成绩。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00