前言
龙芯有新世界和旧世界之分,两个世界的软件不通用,更多细节请参考这篇文章。本文编译的 Cloudreve 仅适用于龙芯新世界。截至本文撰写时,适配久久派的新世界系统仅有 Buildroot。
提示如果你只是想要一个编译好的可执行文件,可直接前往此处下载。
本文编译所用系统为 Ubuntu 22.04 LTS amd64,其他系统大同小异。以下为详细步骤。
安装 Golang 环境
下载 Golang 压缩包
wget https://golang.google.cn/dl/go1.23.3.linux-amd64.tar.gz
解压
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.23.3.linux-amd64.tar.gz
添加到环境变量(全局)
sudo echo "export PATH=$PATH:/usr/local/go/bin" >> /etc/profile
使环境变量生效
source /etc/profile
安装 Node.js 环境
如果你使用自己的电脑或国内服务器进行编译,建议配置 Node.js 镜像进行加速。
export NODE_MIRROR=https://mirrors.tuna.tsinghua.edu.cn/nodejs-release/
然后安装 Node.js。
curl -fsSL https://raw.githubusercontent.com/tj/n/master/bin/n | sudo bash -s install lts
配置 npm 镜像(可选)
npm config set registry https://registry.npmmirror.com
安装 yarn
sudo npm install -g yarn
配置 yarn 镜像(可选)
yarn config set registry https://registry.npmmirror.com
下载 Cloudreve 源码
安装 git 和 zip,如果已安装请跳过
sudo apt update
sudo apt install -y git zip
克隆 Cloudreve 仓库到本地,同时拉取子模块
git clone --recurse-submodules https://github.com/cloudreve/Cloudreve.git
进入仓库目录,并切换到目前最新的 3.8.3 版本分支
cd Cloudreve
git checkout 3.8.3
编译 Cloudreve
如果你使用自己的电脑或国内服务器进行编译,建议配置 Go 模块代理进行加速。
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
安装 GoReleaser
go install github.com/goreleaser/goreleaser@latest
修改 .goreleaser.yaml,删除 goos 中的 windows 和 darwin,以及 goarch 中的所有架构,并添加 loong64 架构。为减少构建出二进制文件的体积,可在 ldflags 的参数最后加上 -s -w(去除符号表信息和调试信息)。
修改后的结果如下:
此处省略...
ldflags:
- -X 'github.com/cloudreve/Cloudreve/v3/pkg/conf.BackendVersion={{.Tag}}' -X 'github.com/cloudreve/Cloudreve/v3/pkg/conf.LastCommit={{.ShortCommit}}' -s -w
goos:
- linux
goarch:
- loong64
此处省略...
由于依赖版本过低,直接编译会报错。需要先更新两个模块。
go get modernc.org/libc@v1.61.0
go get modernc.org/sqlite@v1.33.1
然后即可编译
~/go/bin/goreleaser build --clean --snapshot
编译出的可执行文件在 dist/Cloudreve_linux_loong64/ 中。
转载或引用本文时请遵守 CC BY-NC-SA 4.0 许可协议,注明出处、不得用于商业用途!
评论