Skip to content

Build from source

supdger edited this page Sep 30, 2026 · 11 revisions

从源码制作安装包

本页供开发者制作和验证工具包;默认分支也仍在开发中,不推荐把源码入口当成已验证的故障解决办法。

获取源码后只启动一个文件。它会自动准备锁定材料、制作并校验安装包,再让你确认安装、选择项目,自动构建和验证。无需复制长段下载、摘要校验或打包命令。

获取源码

在已安装 Git 的终端取得开发源码,记下实际提交用于复现问题:

git clone --depth 1 https://github.com/supdger/webman-aot-builder.git webman-aot-builder-source
cd webman-aot-builder-source
git rev-parse HEAD

Receiving objects ... done 和 Resolving deltas ... done 表示 Git 已下载源码;git rev-parse HEAD 输出是问题复现所需的源码身份。命令失败或出现 fatal: 时先处理错误。入口在含 build.command 和 build.cmd 的源码根目录。

macOS Apple Silicon(macOS 终端)

在源码根目录执行一次:

sh ./build.command

入口会准备锁定 PHP 材料,显示下载状态和 SHA-256 检查结果,再让你选择轻量包、完整包或取消。准备材料时的 [成功] 表示该阶段完成;后续菜单会直接显示,不必自己判断下一条命令。选包后自动制作安装包、检查包清单并在隔离目录确认版本。

Windows x64(PowerShell / CMD)

在源码根目录的 PowerShell 执行一次:

.\build.cmd

CMD 中执行 build.cmd 即可。入口自动准备 Windows 运行环境、下载锁定材料、显示进度并提供相同菜单,不需要先手工安装 PHP。

构包完成后的选择

看到 “安装包已就绪:…”、大小和 “校验:包清单和隔离安装版本均通过” 表示源码构包成功。入口随即显示安装目标和 PATH 影响,询问 “是否安装?1 安装;0 取消”;选择安装后自动完成安装与新版本检查。取消时安装包留在显示的输出目录,不会执行安装。

安装成功后选择 1 构建项目,输入已完成 Composer 依赖安装的 Webman / SaiAdmin 项目根目录。工具自动依次构建并验证。看到 “项目构建与校验成功” 与 dist-aot/ 路径表示本机流程完成。项目失败可以重试、重选目录或结束;无需另外执行校验命令。完整安装流程见 安装入口,错误处理见常见问题。

项目构建会忽略任意目录层级中精确名称为 .DS_Store 的文件;这是后续 Webman / SaiAdmin 项目构建的源码快照与隔离镜像规则。真实源码或依赖变化仍会中止构建;按列出的相对路径检查,待依赖安装或编辑写入结束后再重试。

本机验证检查构建产物结构、完整性及工具报告的静态属性;部署后仍需按 Linux 目标机验收 检查启动、数据库和业务接口。

维护者制作独立 setup

tools/package-setup.php 从实际已核验的同平台轻量、完整安装包生成固定 HTTPS 下载地址、大小及 SHA-256 的入口。macOS 生成保留执行权限的 setup ZIP,Windows 生成 setup CMD。生成器只产生本机文件;发布前必须核对正式资产身份和下载地址,并在对应平台验证下载、安装、项目构建与验证。

构包、安装及业务验收是不同结果;已有证据与未闭合范围见测试与验证范围。

构包维护与复现

构包锁定的输入来自 toolchain.lock.json、toolchain/minimal-components.lock.json 和 installer/runtime.lock.json。tools/package-installers.php 制作工具包,tools/package-setup.php 制作指向实际资产的 setup;入口统一驱动这些步骤。组件锁升级需要同时核对上游身份、源资产大小与摘要、许可证及两种包的实际内容;不能只换下载地址。

自己制作的外层 ZIP / tar.gz 不保证与公开包逐字节相同。包内清单用于核对本包 payload;不要用公开归档的外层摘要判定自制包内容。对照时先明确输入与修订,逐文件比较内容,再测试私有安装与项目构建。构包输出、安装目录和业务项目目录是三个不同位置。

取消安装时构包产物保留在入口显示的输出目录;验证另一个包使用独立解压与安装目录,不覆盖上一份。历史手工打包命令和资产身份可以从 Wiki 的 Git 历史与发布记录追溯,不将过时命令复制为当前推荐步骤。

Clone this wiki locally