跳转到内容

mise bootstrap

  • 用法: mise bootstrap [FLAGS] [SUBCOMMAND]
  • 别名: bs
  • 效果: 具有破坏性——可能删除或不可逆地覆盖
  • 源代码: src/cli/bootstrap.rs

使用一条命令为当前配置设置机器

按顺序执行当前配置的引导步骤:

  1. mise bootstrap accounts apply — 收敛 [bootstrap.users][bootstrap.groups](Linux)
  2. mise bootstrap plugins apply — 安装 [bootstrap.plugins] 1.7. [bootstrap.hooks.pre-packages] — 可选设置钩子
  3. 安装 [bootstrap.packages] 中由内置管理器管理的条目
  4. mise bootstrap files apply — 收敛 [bootstrap.files][bootstrap.directories]
  5. mise bootstrap services apply — 收敛 [bootstrap.services] systemd 系统服务(Linux)
  6. mise bootstrap firewall apply — 收敛 [bootstrap.linux.firewall] 主机防火墙策略和规则(Linux)
  7. mise bootstrap compose apply — 收敛 [bootstrap.compose] Docker Compose 项目
  8. mise bootstrap repos apply — 克隆/收敛 [bootstrap.repos], 并在 pre-repos/post-repos 钩子之间执行
  9. mise bootstrap dotfiles apply — 应用 [dotfiles] 中的点文件, 并在 pre-dotfiles/post-dotfiles 钩子之间执行
  10. mise bootstrap mise-shell-activate apply — 根据 [bootstrap.mise_shell_activate] 配置 shell 激活
  11. mise bootstrap macos defaults apply — 写入
`[bootstrap.macos.defaults]` 条目(macOS)
并在 `pre-defaults`/`post-defaults` 钩子之间执行
  1. mise bootstrap macos launchd-agents apply — 安装/加载
`[bootstrap.macos.launchd.agents]`
  1. mise bootstrap linux systemd-units apply — 安装/启动
`[bootstrap.linux.systemd.units]`
  1. mise bootstrap user apply — 设置 [bootstrap.user].login_shell
(Unix)
并在 `pre-user`/`post-user` 钩子之间执行
  1. mise install — 安装 [tools] 中缺失的工具
并在 `pre-tools`/`post-tools` 钩子之间执行;来自
`[bootstrap.packages]` 的包插件条目随后安装,之后执行
`[bootstrap.hooks.post-packages]`
  1. mise run bootstrap — 如果定义了名为 bootstrap 的任务
  2. [bootstrap.hooks.final] — 可选的最终钩子

这些声明式步骤会趋于收敛——任何已经处于期望状态的内容 都会被跳过,因此重复运行是安全的。bootstrap 任务会在每次 调用时运行;请保持其幂等性。可将其用于任何不适合声明式部分的 项目特定设置(如初始化数据库、认证流程等)——它会在 PATH 上已安装工具的环境中运行。

使用 --skip <part> 跳过指定部分,或使用 --only <part> 仅运行 指定部分。这两个标志都可以重复使用或以逗号分隔,但不能同时使用。

标志

示例:

mise bootstrap                    # packages + repos + dotfiles + tools + bootstrap task
mise -E work bootstrap --from [email protected]:example/dotfiles.git --yes
mise bootstrap --force-dotfiles   # replace conflicting dotfile targets
mise bootstrap --skip tools,task  # skip tool installation and the bootstrap task
mise bootstrap --only tools       # run just tool installation
mise bootstrap status --missing
mise bootstrap packages apply --yes
mise bootstrap repos status
mise bootstrap repos apply --dry-run
mise bootstrap dotfiles status
mise bootstrap mise-shell-activate apply --dry-run
mise bootstrap macos defaults status
mise bootstrap macos launchd-agents apply --dry-run
mise bootstrap linux systemd-units apply --dry-run
mise bootstrap user apply --dry-run