Skip to content

编译

Warning

由于 Web 前端的编译依赖于某些 Linux 的特性,因此暂不支持在 Windows 平台对 Platypus 进行编译。

完整编译

准备一个纯净的 Ubuntu 20.04 环境,然后执行如下命令:

sudo apt update
sudo apt install -y curl make
git clone https://github.com/WangYihang/Platypus.git
cd Platypus
make install_dependency
make release

编译成功后,发行版将会位于 ./build 文件夹中。

Warning

使用 Makefile 安装依赖的时候会通过 raw.githubusercontent.com 下载 nvm 的安装文件,因此需要确保您可以正常访问 raw.githubusercontent.com。如果您不能正常访问该域名,则需要您根据 Makefile 中的依赖安装部分手动安装所需依赖。

单独编译

安装编译环境

编译环境依赖如下程序

  • golang >= 1.6
  • node >= 14
  • yarn
  • upx
make install_dependency

编译 Web 前端

make build_frontend

编译 Termite

make build_termite

为了保证 Platypus 只有单个文件,因此在编译 Platypus 时,会将所有 Termite 的二进制文件直接打包到 Platypus 的可执行文件中。

但为了避免打包后的 Platypus 过大,目前暂时只配置了编译 linux_amd64 平台的 Termite,如需其他平台,可以修改 Makefile 中 build_termite 的部分,如下:

env GOOS=linux GOARCH=amd64 go build -o termites/termite_linux_amd64 termite.go

可以通过 go tool dist list 列出所有 Golang 支持的操作系统与平台组合。

Warning

由于 Termite 依赖于 Linux 的伪终端特性,因此暂时不支持编译能在 Windows 上运行的 Termite 客户端。

整合资源文件

本步骤会将之前编译好的 Web 前端文件、Termite 可执行文件等统一打包用以编译 Platypus。

make collect_assets

编译发布版本

make release

为了避免 GitHub Actions 编译太多目标平台的发行版导致资源消耗严重,因此默认只配置了 3 个 常见的目标平台,分别是:

  • windows/amd64
  • linux/amd64
  • darwin/amd64

如果需要添加其他平台,可以通过修改 Makefile 中的 release 部分来实现。

env GOOS=linux GOARCH=amd64 go build -o ./build/Platypus_linux_amd64 platypus.go