#arch-linux #yaml #arch #installer #linux #file-input

app jimmy

Arch Linux 安装程序... 与 YAML 文件

2 个不稳定版本

0.10.0 2022年4月5日
0.9.0 2022年3月14日

#13#file-input

MIT 许可证

28KB
606 代码行

jimmy

一个有趣名字的 Arch 安装程序。

但是它不是交互式的:它接受一个 YAML 文件作为输入,检查其是否有效,并生成一个 Shell 脚本。

它能做什么

  • 打印一个模板 YAML 文件,您可以编辑后输入
  • 分区磁盘(这包括创建分区、格式化、挂载它们并创建 fstab 文件)
  • 安装您告诉它的软件包
  • 设置时区和生成区域设置
  • 设置 NetworkManager
  • 提示您输入 root 密码
  • 安装和配置 GRUB 或 EFISTUB
  • 创建用户(用户名、组等)。请注意,wheel 组始终可以使用 sudo。
  • 为用户设置默认 shell

它不能做什么

  • 连接到互联网(您必须自己完成)
  • 设置镜像和 gpg 密钥(您也必须完成)
  • 设置图形环境

入门

要求

  • cargo,Rust 的包管理器

安装

从 crates.io 直接安装

cargo install jimmy

使用

摘要

jimmy [-f | --file | -s | --sample] [<ARGS>]

jimmy 将继续生成 Shell 脚本并将其打印到 stdout,同时警告您缺失的属性,并如果某些关键属性(例如 hostname)未指定,则显示错误。您可以将输出重定向到文件并使用 shell 执行它。

以下是一个使用具体命令的示例

jimmy --sample >input.yaml
vim input.yaml
jimmy --file input.yaml >script.sh
chmod +x script.sh

警告:不要运行它,除非在 Arch live 系统中!您可能会丢失数据!

路线图

  • 提供示例 YAML 文件
  • 解析 YAML 文件(使用 serde
  • 检查输入文件是否有效
    • 如果未指定 username,则错误
    • 如果区域信息无效,则 panic
  • 准备安装
    • 更新系统时钟
    • 分区
      • 使用 fdisk 创建
      • 格式化
      • 挂载文件系统
    • 安装所有指定的软件包
  • 配置系统
    • 生成 fstab 文件
    • 设置时区
    • 设置区域设置
    • 配置网络
    • 配置用户
    • 设置 root 的密码
    • 配置引导加载程序
      • GRUB
      • efistub
  • 现场生成模板 YAML 文件
  • 安装时打印状态消息

贡献

欢迎拉取请求。对于重大更改,请首先打开一个 issue 以讨论您想要更改的内容。

请确保适当地更新测试。

依赖项

~4.5–6MB
~115K SLoC