Skip to content

从源码编译 Yao 应用

系统环境准备

不要在 WSL2 系统中挂载 Windows 盘,磁盘性能会非常慢。

注意:本记录为个人版本的构建过程。

请检查操作系统的 glibc 版本,目标机器的 glibc 版本应高于构建机器。

sh
ldd --version
ldd (GNU libc) 2.17

Ubuntu 安装开发工具

sh
sudo apt install gcc g++ make -y

安装 Go

需要安装 go 1.23.4node 16

sh
mkdir -p $HOME/go/go1.23.4

cd $HOME/go

wget https://go.dev/dl/go1.23.4.linux-amd64.tar.gz

tar -xvf go1.23.4.linux-amd64.tar.gz -C $HOME/go/go1.23.4

修改 .bashrc 文件,添加 go 路径:

sh
vi ~/.bashrc
tee -a ~/.bashrc <<'EOF'
export GOROOT="$HOME/go/go1.23.4/go"
export GOPATH="$HOME/go/workspace"
export PATH="$PATH:$GOPATH/bin:$GOROOT/bin"
alias go='http_proxy=http://127.0.0.1:8118 https_proxy=http://127.0.0.1:8118 no_proxy=localhost,127.0.0.0/8,::1 go'

EOF

更新环境变量:

sh
source ~/.bashrc

安装 go-bindata

sh
go install -a -v github.com/go-bindata/go-bindata/...@latest

安装 Node.js 18

sh
# 安装 nvm
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash

nvm install v18.20.8
nvm alias default v18.20.8
nvm use v18.20.8
npm i -g pnpm

克隆 Yao 源码

从 GitHub 拉取所有源码。不要更改文件夹 $HOME/projects/yao-app-sources

sh
mkdir -p $HOME/projects/yao-app-sources

cd $HOME/projects/yao-app-sources

# 设置 git 代理(如有需要)
git config --global http.proxy http://127.0.0.1:8118
git config --global https.proxy http://127.0.0.1:8118

git clone https://github.com/wwsheng009/xgen xgen-v1.0

git clone https://github.com/wwsheng009/yao

git clone https://github.com/wwsheng009/xun

git clone https://github.com/wwsheng009/kun

git clone https://github.com/wwsheng009/go-hdb

git clone https://github.com/wwsheng009/v8go

git clone https://github.com/wwsheng009/yao-init

git clone https://github.com/wwsheng009/gou

构建 xgen

sh
cd yao

export NODE_ENV=production

echo "BASE=__yao_admin_root" > ../xgen-v1.0/packages/xgen/.env

cd ../xgen-v1.0 && pnpm install --no-frozen-lockfile && pnpm run build

echo "BASE=yao" > ../xgen-v1.0/packages/xgen/.env

下载 v8go 库

对于 Ubuntu,需要安装 git-lfs:

sh
cd v8go

sudo apt-get install git-lfs

git lfs fetch

git checkout .

# 如果存在 zip 文件,需要解压
cd deps/linux_x86_64
unzip libv8.a.zip

编译 Yao 应用

sh
cd yao && make debug1

# 检查版本
yao version

常见问题与建议

  • 如果遇到依赖包下载缓慢,可以考虑配置国内镜像。
  • 编译过程中如遇到权限问题,请确保当前用户有足够权限,或使用 sudo。
  • 推荐在全新 Ubuntu 环境下操作,避免环境污染。

如有疑问,欢迎在社区或 GitHub 提 Issue 交流。