---TITLE---
Awesome OS Setup:跨平台自动化系统配置与开发环境部署方案
---TAGS---
系统配置,开发环境,自动化脚本,跨平台,TUI
---CONTENT---
对于开发者而言,无论是更换新电脑还是重装系统,最耗时的莫过于从零开始搭建开发环境。安装各种软件、配置终端、调整系统设置,这一系列繁琐操作往往需要耗费数小时,甚至一整天的时间。现在,一个名为 Awesome OS Setup 的项目试图通过自动化和标准化来解决这一痛点。
项目核心:统一的自动化配置工具
Awesome OS Setup 本质上是一个个人操作系统配置的终端用户界面(TUI)应用。其核心是通过一个由 Python 编写的图形化终端工具,来统一管理 Windows、macOS 和 Linux 的系统设置与软件安装。
该项目最大的亮点在于其声明式的配置方式。用户只需在一个统一的 YAML 文件中定义自己所需的软件包列表,工具便会自动调用对应平台的包管理器(如 Windows 的 winget、Ubuntu 的 apt、macOS 的 brew 或 Arch 的 yay)进行批量安装,彻底告别手动逐个敲命令的时代。
它提供了针对不同系统的“一行流”安装脚本,执行后即可进入一个可视化的菜单界面。这个菜单不仅用于批量安装软件,还能协助配置 WSL2(适用于 Windows)以及平铺式窗口管理器,甚至内置了 Windows Terminal 的美化方案,自动配置字体与配色,力求为追求效率与美观的开发者提供开箱即用的体验。
功能与架构详解
五大核心优势
-
一行命令完成安装
- Windows:通过 PowerShell 脚本,利用
winget 安装选定应用,启用 WSL,应用 Windows Terminal 默认设置,并获取平铺窗口管理器 GlazeWM 的配置。
- Linux / WSL / macOS:通过 Bash 脚本,安装 Zsh、Oh My Zsh、powerlevel10k 主题、以及 bat、lsd、fzf 等终端增强工具,Linux 用户还可选装 NVIDIA 驱动。
-
跨平台的 Python 终端用户界面 (TUI)
- 自动检测操作系统(Windows, WSL, Linux, macOS)。
- 集成系统操作功能,如管理 WSL、Windows 实用程序、调用各系统包管理器。
- 基于 TermTk 库构建的主应用 (
main.py) 提供了清晰的可视化操作界面。
例如,在 Linux/WSL 环境下运行安装脚本后,会进入一个交互式菜单。该脚本首先会检测系统环境,欢迎信息显示:“Detected OS: Linux”。菜单提供了有序的安装选项,引导用户逐步设置环境,其选项包括:
- Install ZSH
- Install Oh My Zsh, plugins and terminal utilities: batcat, lsd, bytop, fzf
- Install powerlevel10k
- Install / Initialize Miniconda3
- Install NVIDIA driver
- Uninstall ZSH or OHM or PL10K
- Show commands
- Exit
-
统一的软件包目录管理
- 项目以
src/awesome_os/config/packages.yaml 文件作为软件包定义的“单一事实来源”。
- 已实现针对不同系统和包管理器的后端,例如:
- Windows:
WindowsWingetManager
- macOS:
DarwinBrewManager, DarwinBrewCaskManager
- Ubuntu:
UbuntuAptManager, UbuntuSnapManager
- Arch:
ArchLinuxYayManager
-
强大的 WSL 工作流助手
- 对于 Windows 用户,工具提供了完善的
WSL 管理功能,可视为一个 WSL 工作流助手,极大简化了 WSL 的使用复杂度。其可执行操作包括:
- 列出已安装或在线可用的发行版。
- 安装发行版(支持选择自定义安装位置)。
- 导出、导入、移动或注销发行版。
- 关闭和更新 WSL。
-
Windows Terminal 一键美化
- 应用一致的默认配置,包括 Night Owl 配色方案、JetBrains Mono 字体、透明效果以及适当的权限提升设置。
- 自动添加一个带有专属图标的 Ubuntu 配置文件到 Windows Terminal 中。
效果展示与系统选择
工具旨在帮助用户在 Windows 11 的 WSL Ubuntu 终端中,实现高效、美观的桌面环境。例如,配合 GlazeWM 这类平铺窗口管理器,用户可以使用键盘命令动态组织终端和其他应用窗口,实现类似下图的高效布局(原图为终端截图,此处用文字描述):
- 左侧终端:运行
neofetch 命令,显示详细的系统信息,例如操作系统为 Ubuntu 22.04 LTS on WSL2,内核版本 5.15.133.1,使用 zsh 5.8.1 作为 shell,运行在 Windows Terminal 中。硬件信息包括 AMD Ryzen 7 5800X CPU 和 16GB 内存。
- 右侧终端:正在运行
auto_linux_setup.sh 脚本,并停留在交互菜单选择界面,等待用户输入。
那么,开发者应如何选择操作系统?Awesome OS Setup 的作者也给出了见解:
| 特性 |
macOS |
Linux |
Windows with WSL |
| 优点 |
适合编程、视频编辑,完美支持 Adobe 和 Office。 |
编程和游戏的理想选择,两方面性能俱佳。 |
软件兼容性无敌(Adobe, Office)。游戏体验佳。借助 WSL,无需双系统即可获得完美开发环境。 |
| 不便之处 |
游戏生态相对有限。 |
缺乏对 Adobe、Office 及部分专业软件的原生支持。 |
系统UI流畅度和响应速度可能不及 macOS 和 Linux。 |
WSL 的集成使得 Windows 成为一个极具吸引力的平台,它让用户在享受 Adobe、Microsoft 全家桶和顶级游戏兼容性的同时,又能获得一个近乎原生的 Linux 命令行开发环境。这种灵活性为开发者提供了全面的计算体验。
快速开始使用指南
对于 Linux / WSL2 / macOS 用户
在 bash 或 zsh 终端中,执行以下一条命令即可开始:
sh -c “$(wget https://raw.githubusercontent.com/AmineDjeghri/awesome-os-setup/main/install_unix.sh -O -)”
如果你的环境是无头服务器(如 ubuntu-server),建议通过带有 GUI 的 SSH 客户端连接,以便使用鼠标操作和复制粘贴命令。
对于 Windows 11 用户
以管理员身份打开 PowerShell,然后执行:
iex ((New-Object System.Net.WebClient).DownloadString(‘https://raw.githubusercontent.com/AmineDjeghri/awesome-os-setup/main/install_windows.ps1’))
项目文档与总结
该项目配备了详细的文档,涵盖了 Windows/WSL2、Linux、macOS 等不同平台的工作流指南,甚至包括电视配置、应用设置、浏览器扩展等个性化内容。这些文档通过 MkDocs 构建成了静态网站,便于浏览。
Awesome OS Setup 项目体现了现代 Python 工具链和 自动化运维 思想在解决开发者日常痛点上的强大能力。通过将碎片化的配置步骤抽象为可版本化管理的 YAML 文件和自动化脚本,它显著降低了开发环境搭建与维护的成本,让开发者能够更专注于创造本身,而非基础设施的重复劳作。
参考资料
[1] 有了这个项目,重装系统再也不愁了!, 微信公众号:mp.weixin.qq.com/s/dwEEj1wahDtyBmUFC_RWRQ
版权声明:本文由 云栈社区 整理发布,版权归原作者所有。