首页
/ 在 Chocolatey、Termux、Funtoo 与 Nix 生态中安装 Starship:进阶安装完全指南

在 Chocolatey、Termux、Funtoo 与 Nix 生态中安装 Starship:进阶安装完全指南

2026-09-07 22:01:01作者:何将鹤

本文基于仓库 docs/es-ES/installing/README.md(Advanced Installation 西班牙语文档)整理编写。文中涉及的仓库文件均以 starship 仓库根目录下的相对路径给出,便于读者对照查阅。

导读

Starship 的安装可以拆成两步:先把 starship 二进制文件放到机器上再让 shell 的初始化脚本加载它作为提示符。绝大多数主流平台在官方安装指南中即可一步到位;但对于 Chocolatey(Windows)、Termux(Android)、Funtoo Linux、Nix/NixOS 这类「更专业」的发行与包管理生态,往往需要更细化的指引。本文以仓库内的西班牙语进阶安装文档为主体,逐平台给出可复制的安装命令与声明式配置范例,并对照仓库源码与打包脚本,解释 choco install starshippkg install starshipemerge app-shells/starship 以及 Nix 三种使用形态背后的实际工作原理。

Starship 安装的两步通用模型

无论哪种平台,安装 Starship 都遵循同一模型:

  1. 获取 starship 二进制文件并将其安装到本机;
  2. 修改 shell 的启动脚本,让它以 Starship 的二进制作为提示符来源(例如 Bash 下在 ~/.bashrc 末尾追加 eval "$(starship init bash)")。

对大多数用户而言,主文档的安装章节已经覆盖 Bash、Cmd、Elvish、Fish、PowerShell、Nushell、Tcsh、Xonsh、Zsh 等 shell 的「第二步」配置方式,而仓库的 src/init/ 目录则保留着全部官方 init 脚本实现,例如 starship.bashstarship.ps1starship.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.tomlsettings 中的键直接对应 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/profileprograms.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-gnuaarch64-apple-darwinx86_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.bashstarship.fishstarship.zshstarship.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 场景则由 Nix settings 生成)控制。完整的模块与配置项文档见 配置指南预设合集,进阶玩法可阅读 高级配置
  • 遇到迁移问题? 若你从旧版本升级,可对照 0.45.0 迁移指南 了解配置变更;仓库根目录的 CHANGELOG.md 记录了各版本行为变化。
  • 你的平台不在本文列表? 原文档的作者建议:若你在其他发行版/生态上摸索出了可行的安装方式,可将其补充进该进阶安装文档,供后续用户复用——这正是这份文档被设计为「主 README 装不下的长尾平台合集」的原因。

综上,本文基于关联文档 docs/es-ES/installing/README.md 完成,文章已完整继承原文档的 Chocolatey、Termux、Funtoo Linux 与 Nix 三种形态的安装指引与配置示例,并结合仓库中 install/windows/choco/install/install.shsrc/init/ 等源码文件进行了深化说明;正文未引用仓库图片(该文档主题为安装流程,仓库 media 中无强相关架构图或流程截屏),所有内部链接均已转换为仓库根目录相对路径。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
33
18
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.13 K
2.75 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
857
1.35 K
docsdocs
暂无描述
Markdown
897
5.8 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
529
593
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
915
1.83 K
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.58 K
1.01 K
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.35 K
1.46 K
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
1.01 K
515
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
547
388