2 个不稳定版本
0.10.0 | 2022年4月5日 |
---|---|
0.9.0 | 2022年3月14日 |
#13 在 #file-input
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