FluffOS 一键自动编译脚本 - 支持多种 Linux 发行版

💫 一键命令,轻松编译 FluffOS 驱动!多种 Linux 系统通用

作者:不一 | QQ:279631638


📝 写在前面

最近在不同系统下编译驱动测试,发现每个系统都要重新折腾一遍编译脚本。

于是有了这个想法:做一个通用的自动化脚本

在 AI 的帮助下,这个脚本诞生了,希望能帮助新手朋友更友好地编译 FluffOS 驱动 🎉


🖥️ 支持的系统

系统 适配状态
Huawei Cloud EulerOS 2.0 标准版 ✅ 完美支持
CentOS ✅ 完美支持
Ubuntu ✅ 完美支持
Debian ✅ 完美支持
AlmaLinux ✅ 完美支持
Fedora CoreOS ✅ 完美支持
openEuler ✅ 完美支持

⚠️ 重要提示

关于 Huawei Cloud EulerOS:

  • 2.0 标准版 - 完全适配,推荐使用
  • 2.0 等保三级版 - 不推荐使用
    • 等保三级版有严格的安全限制,需要频繁提权操作
    • 建议改用标准版或其他系统

快速导航: 快速开始特性介绍系统支持使用示例常见问题


📖 项目介绍

在使用 FluffOS 的过程中,每次编译都需要:

  • ❌ 手动安装一堆依赖包
  • ❌ 配置复杂的编译选项
  • ❌ 记住各种 CMake 参数
  • ❌ 在不同系统上依赖包名称还不一样

现在,一切都变得简单了! 🎉

本脚本提供 一键自动化编译安装,支持主流 Linux 发行版,让您专注于 MUD 开发,而不是环境配置。

**使用截图 file file file


✨ 主要特性

🚀 一键安装

  • 单条命令完成所有操作
  • 无需手动干预
  • 自动处理所有依赖

🔧 跨平台支持

  • 支持多种主流 Linux 发行版
  • 自动识别系统类型
  • 智能适配包管理器

💬 交互友好

  • 清晰的进度提示
  • 详细的错误信息
  • 每一步都看得见

🤖 自动化支持

  • 支持非交互模式
  • 适合脚本化部署
  • 完美集成 CI/CD

🚀 快速开始

📦 一键安装(推荐)

方式 1:使用 curl(推荐)

bash <(curl -fL https://raw.githubusercontent.com/serenez/fluffos-builder/main/install.sh)

方式 2:使用 wget

bash <(wget -O- https://raw.githubusercontent.com/serenez/fluffos-builder/main/install.sh)

方式 3:非交互模式(自动化)

# 所有确认使用默认值
bash <(curl -fL https://raw.githubusercontent.com/serenez/fluffos-builder/main/install.sh) -y

💡 提示:运行后会显示下载进度,完成后自动开始编译安装


📋 支持的系统

系统 版本 状态 包管理器
Ubuntu 18.04+ ✅ 完全支持 apt
Debian 10+ ✅ 完全支持 apt
CentOS 7+ ✅ 完全支持 yum/dnf
OpenEuler 20.03+ ✅ 完全支持 yum/dnf
HCE OS 2.0+ ✅ 完全支持 yum/dnf
Arch Linux Rolling ✅ 完全支持 pacman
openSUSE 15+ ✅ 完全支持 zypper

💡 使用示例

🎯 场景 1:标准安装(推荐新手)

# 交互模式,会询问每一步操作
bash <(curl -fL https://raw.githubusercontent.com/serenez/fluffos-builder/main/install.sh)

执行后会自动:

  1. ✅ 检查系统环境
  2. ✅ 安装编译依赖
  3. ✅ 拉取最新代码
  4. ✅ 自动编译 FluffOS
  5. ✅ 询问是否安装到系统目录

🏭 场景 2:生产环境部署

# Release 构建 + 非交互模式
bash <(curl -fL https://raw.githubusercontent.com/serenez/fluffos-builder/main/install.sh) -y --release

特点:

  • 🚀 性能优化的 Release 版本
  • ⚡ 自动确认所有选项
  • 📦 适合批量部署

🛠️ 场景 3:开发调试

# Debug 构建 + 运行测试
bash <(curl -fL https://raw.githubusercontent.com/serenez/fluffos-builder/main/install.sh) -y --debug --test

特点:

  • 🐛 包含调试符号
  • 🧪 自动运行测试套件
  • 📊 详细的错误信息

🇨🇳 场景 4:国内加速(推荐)

# 使用 Gitee 镜像
GIT_REPO="https://gitee.com/mudren/fluffos.git" \
bash <(curl -fL https://raw.githubusercontent.com/serenez/fluffos-builder/main/install.sh) -y

优势:

  • 🚄 国内访问速度快
  • 💯 代码同步更新
  • 🔄 自动处理依赖

🎮 命令参数

参数 说明
-h, --help 📖 显示帮助信息
-y, --yes 🤖 非交互模式,自动确认所有询问
-d, --debug 🐛 Debug 构建(包含调试信息)
-r, --release 🚀 Release 构建(优化性能)
-t, --test 🧪 编译后运行测试
--skip-deps ⏭️ 跳过依赖安装(已安装过依赖时使用)
--skip-update ⏭️ 跳过 Git 更新(使用现有代码编译)

🔧 环境变量

变量名 说明 默认值
GIT_REPO Git 仓库地址 GitHub 官方仓库
GIT_BRANCH Git 分支 master
INSTALL_DIR 脚本安装目录 当前目录

📁 文件位置

编译完成后的文件结构:

当前目录/
├── fluffos/                    # FluffOS 源码目录
│   ├── src/                    # 源代码
│   ├── build/                  # 编译产物
│   │   └── bin/
│   │       └── driver          # 编译好的驱动程序 ⭐
│   ├── testsuite/              # 测试套件
│   └── ...
└── build.sh                    # 编译脚本(自动下载)

系统安装(如果选择了安装):

  • 📍 /usr/local/bin/driver - 驱动程序

❓ 常见问题

Q1:一键安装命令运行后没反应?

原因:可能缺少 curl 或 wget

解决

# Ubuntu/Debian
sudo apt install curl

# CentOS/RHEL
sudo yum install curl

Q2:GitHub 访问慢或失败?

解决:使用 Gitee 镜像

GIT_REPO="https://gitee.com/mudren/fluffos.git" \
bash <(curl -fL https://raw.githubusercontent.com/serenez/fluffos-builder/main/install.sh) -y

Q3:如何更新已编译的 FluffOS?

直接在原目录再次运行脚本即可:

bash <(curl -fL https://raw.githubusercontent.com/serenez/fluffos-builder/main/install.sh) -y

脚本会自动检测现有项目,询问是否使用,然后自动 git pull 更新。

Q4:编译速度慢怎么办?

  • 默认使用 RelWithDebInfo 构建(包含调试信息)
  • 如果只需要运行,使用 Release 模式会快很多:
    bash <(curl -fL https://raw.githubusercontent.com/serenez/fluffos-builder/main/install.sh) -y --release

Q5:如何卸载?

# 删除系统安装的驱动(如果安装过)
sudo rm -f /usr/local/bin/driver

# 删除源码和编译文件
rm -rf ./fluffos ./build.sh

Q6:支持 macOS 或 Windows 吗?

  • macOS:理论上支持,但未充分测试,建议使用 Homebrew 安装依赖
  • Windows:建议使用 WSL2 (Windows Subsystem for Linux) 运行本脚本

🔄 工作流程

脚本自动执行以下步骤:

  1. 🔍 系统检测 - 识别 Linux 发行版和包管理器
  2. 📦 依赖安装 - 自动安装编译所需的工具和库
  3. 📥 代码获取 - 从 GitHub/Gitee 克隆或更新 FluffOS 源码
  4. ⚙️ 编译配置 - 使用 CMake 配置构建选项
  5. 🏗️ 并行编译 - 使用多核 CPU 加速编译
  6. 安装确认 - 询问是否复制到系统目录

🌟 高级用法

🤖 自动化部署脚本

创建 deploy_fluffos.sh

#!/bin/bash
#
# FluffOS 自动化部署脚本
# 适用于多台服务器批量部署
#

set -e

echo "=========================================="
echo "  FluffOS 自动化部署"
echo "=========================================="

# 使用 Gitee 镜像 + Release 构建 + 非交互模式
GIT_REPO="https://gitee.com/mudren/fluffos.git" \
bash <(curl -fL https://raw.githubusercontent.com/serenez/fluffos-builder/main/install.sh) \
  -y \
  --release \
  --skip-deps  # 如果依赖已安装

echo "部署完成!"

# 可选:重启游戏服务
# systemctl restart mud-game

⏰ Cron 定时更新

让 FluffOS 自动保持最新版本:

# 编辑 crontab
crontab -e

# 添加定时任务(每天凌晨 2 点自动更新)
0 2 * * * cd /opt/fluffos && bash <(curl -fL https://raw.githubusercontent.com/serenez/fluffos-builder/main/install.sh) -y >> /var/log/fluffos-update.log 2>&1

🐳 Docker 部署

创建 Dockerfile

FROM ubuntu:22.04

# 安装必要工具
RUN apt update && apt install -y curl sudo

# 一键安装 FluffOS
RUN bash -c "$(curl -fL https://raw.githubusercontent.com/serenez/fluffos-builder/main/install.sh)" -s -y --release

# 设置工作目录
WORKDIR /opt/fluffos

# 启动驱动
CMD ["/usr/local/bin/driver", "config.cfg"]

📊 性能对比

构建类型 编译时间 驱动大小 运行性能 调试信息
Debug ⏱️ 较慢 📦 较大 🐌 一般 ✅ 包含
RelWithDebInfo ⏱️ 中等 📦 中等 🚀 优化 ✅ 包含
Release ⏱️ 最快 📦 最小 🚀 最优 ❌ 不含

💡 建议

  • 开发调试:使用 --debug
  • 日常使用:默认 (RelWithDebInfo)
  • 生产环境:使用 --release

📞 联系与支持

💬 获取帮助

🔗 相关链接

👨‍💻 作者信息

作者:不一 QQ:279631638 项目地址https://github.com/serenez/fluffos-builder


🙏 致谢

  • 感谢 FluffOS 团队 的辛勤付出
  • 感谢 MUDREN 社区 的支持

📄 许可证

MIT License - 自由使用,欢迎贡献


一条命令,轻松编译 FluffOS! 🚀

京ICP备13031296号-4