GameServerManager/scripts/arm
2025-09-25 11:57:35 +08:00
..
node-arm64.sh 增加arm开发 2025-09-25 11:57:35 +08:00
npm-arm64.sh 增加arm开发 2025-09-25 11:57:35 +08:00
README.md 增加arm开发 2025-09-25 11:57:35 +08:00
setup-and-run.sh 增加arm开发 2025-09-25 11:57:35 +08:00
start-dev-dual-terminal.sh 增加arm开发 2025-09-25 11:57:35 +08:00
start-dev-simple.sh 增加arm开发 2025-09-25 11:57:35 +08:00

ARM64 开发环境脚本

这些脚本用于在 x86_64 系统上通过 QEMU 模拟运行 ARM64 版本的 Node.js 和 npm。

文件说明

  • setup-and-run.sh - 一键安装依赖和启动开发服务器的主脚本
  • npm-arm64.sh - ARM64 npm 命令封装脚本
  • node-arm64.sh - ARM64 node 命令封装脚本

环境要求

1. 安装 QEMU 用户模式模拟器

sudo apt-get update
sudo apt-get install qemu-user-static

2. 安装 ARM64 交叉编译库

sudo apt-get install libc6-dev-arm64-cross

3. 下载 ARM64 版本的 Node.js

确保 ARM64 版本的 Node.js v20.19.0 已安装到以下路径:

/home/xiaozhu/qemu/Node/node-v20.19.0-linux-arm64/

如果路径不同,请修改脚本中的 NODE_BINNPM_CLI 变量。

使用方法

快捷启动(推荐)

# 一键安装依赖并启动双终端开发环境
./start-arm64.sh

# 或者仅启动开发环境(假设依赖已安装)
./dev-arm64.sh

详细选项

# 仅安装依赖
./start-arm64.sh install

# 使用双终端启动(推荐,可看到实时输出)
./start-arm64.sh dev-dual

# 使用后台方式启动
./start-arm64.sh dev-simple

# 使用 concurrently 启动
./start-arm64.sh dev

# 显示帮助信息
./start-arm64.sh help

独立使用 ARM64 命令

# 使用 ARM64 npm
./scripts/arm/npm-arm64.sh install
./scripts/arm/npm-arm64.sh run dev

# 使用 ARM64 node
./scripts/arm/node-arm64.sh --version
./scripts/arm/node-arm64.sh script.js

服务器地址

启动成功后,可以通过以下地址访问:

故障排除

1. qemu-aarch64-static 未找到

sudo apt-get install qemu-user-static

2. ARM64 Node.js 路径错误

检查并修改脚本中的路径配置:

  • NODE_BIN - Node.js 二进制文件路径
  • NPM_CLI - npm CLI 脚本路径

3. 权限问题

确保脚本有执行权限:

chmod +x scripts/arm/*.sh

4. 库文件未找到

安装 ARM64 交叉编译库:

sudo apt-get install libc6-dev-arm64-cross

注意事项

  1. 性能: 通过 QEMU 模拟运行会比原生运行慢一些,这是正常现象
  2. 内存: 确保系统有足够的内存来运行模拟环境
  3. 路径: 所有路径都使用绝对路径,确保在任何目录下都能正常运行
  4. 依赖: 首次运行会下载大量依赖包,请确保网络连接稳定

开发流程

  1. 运行 ./start-arm64.sh./dev-arm64.sh 启动开发环境
  2. 等待依赖安装完成(首次运行)和服务器启动
  3. 系统会自动打开两个终端窗口:
    • 服务端终端: 显示后端服务器日志和输出
    • 客户端终端: 显示前端构建和热重载信息
  4. 在浏览器中访问 http://localhost:5173 查看前端
  5. API 服务运行在 http://localhost:3000
  6. 修改代码后会自动热重载
  7. 在对应的终端窗口中按 Ctrl+C 停止服务器

启动模式说明

  • 双终端模式 (dev-dual): 推荐用于开发,可以看到前后端的实时输出
  • 后台模式 (dev-simple): 后台运行,日志输出到文件
  • 并发模式 (dev): 使用 concurrently 在同一终端显示输出