编译自己的 XList

4 条回复
35 次浏览

AList 给了个编译脚本,但是依赖的东西有点多,根据需要精简一点就好用多了。

复制
#!/bin/bash
# ==================================================
# Alist 编译脚本 - 打包 Linux 和 Windows 版本
# ==================================================

# 注意修改打包的参数,gitAuthor,gitCommit,version,webVersion

set -e

appName="alist"
`base64:builtAt=`"$(date +'%F %T %z')"
goVersion=$(go version | sed 's/go version //')
gitAuthor=$(git show -s --format='format:%aN <%ae>' HEAD)
# gitAuthor=mxpy
gitCommit=$(git log --pretty=format:"%h" -1)
# gitCommit="test"
version=$(git describe --long --tags --dirty --always)
# version="test"
webVersion=$(wget -qO- -t1 -T2 "https://api.github.com/repos/alist-org/alist-web/releases/latest" | grep "tag_name" | head -n 1 | awk -F ":" '{print $2}' | sed 's/\"//g;s/,//g;s/ //g')
# webVersion=3.53.0

ldflags="\
-w -s \
-X 'github.com/alist-org/alist/v3/internal/conf.BuiltAt=$builtAt' \
-X 'github.com/alist-org/alist/v3/internal/conf.GoVersion=$goVersion' \
-X 'github.com/alist-org/alist/v3/internal/conf.GitAuthor=$gitAuthor' \
-X 'github.com/alist-org/alist/v3/internal/conf.GitCommit=$gitCommit' \
-X 'github.com/alist-org/alist/v3/internal/conf.Version=$version' \
-X 'github.com/alist-org/alist/v3/internal/conf.WebVersion=$webVersion' \
"

# 输出目录
output_dir="dist"
mkdir -p "$output_dir"

# ------------------------
# 打包 Linux 版本
# ------------------------
echo "正在打包 Linux 版本..."
GOOS=linux GOARCH=amd64 go build -ldflags="$ldflags" -o "$output_dir/${appName}_linux_amd64"
echo "Linux 版本打包完成:$output_dir/${appName}_linux_amd64"

# ------------------------
# 打包 Windows 版本
# ------------------------
echo "正在打包 Windows 版本..."
GOOS=windows GOARCH=amd64 go build -ldflags="$ldflags" -o "$output_dir/${appName}_windows_amd64.exe"
echo "Windows 版本打包完成:$output_dir/${appName}_windows_amd64.exe"

echo "所有版本打包完成,输出目录:$output_dir"

跨平台需要安装 musl-cross,在 musl.cc 有。
原文: https://mp.weixin.qq.com/s/jdnP-luPSSRPUavP2anBTQ

种子用户

为什么要自己编译? 我直接 docker。 而且 alist 有黑历史换 openlist 了。

种子用户
OP

docker 是一种方法,我是要在 Windows 下用,编译为 exe 更合适,alist 是有黑历史所以才选择自己编译,审查代码后编译,openlist 也可以,这里主要是尝试编译一下开源代码,很多开源项目给的条件不足,说是开源实际自己编译很困难,比如 rustdesk,之前编译的时候就遇到很多问题,alist 开源的编译脚本还是很完善的。

种子用户
OP

是的,openlist 最近也在更新,版本号好像直接从 4.0 还是 5.0 开始了。

发表一个评论

R保持