下面以 Linux 平台编译 MinIO 服务端(minio) 为例,给你一个完整、可操作的说明。MinIO 官方主要使用 Go 编写,因此编译方式比较统一。
MinIO 对 Go 版本要求较新,建议使用 Go 1.22 或以上。
wget https://go.dev/dl/go1.22.4.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.22.4.linux-amd64.tar.gz
配置环境变量(写入 ~/.bashrc 或 ~/.zshrc):
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
验证:
go version
官方仓库:
git clone https://github.com/minio/minio.git
cd minio
查看最新稳定版本(可选):
git tag
git checkout RELEASE.2024-06-06T09-20-06Z
建议用 RELEASE 标签版本,而不是直接 main 分支。
go build -o minio .
编译完成后,当前目录会出现 minio 二进制文件:
ls -lh minio
MinIO 官方构建时会注入版本号和时间:
go build -ldflags="-s -w" -o minio .
或更完整:
VERSION=$(git describe --tags --always)
COMMIT=$(git rev-parse HEAD)
DATE=$(date -u +%Y-%m-%dT%H:%M:%SZ)
go build -ldflags="-X github.com/minio/minio/cmd.Version=${VERSION} \
-X github.com/minio/minio/cmd.CommitID=${COMMIT} \
-X github.com/minio/minio/cmd.CommitTime=${DATE}" \
-o minio .
./minio --version
输出示例:
minio version RELEASE.2024-06-06T09-20-06Z (commit: xxxxx)
mkdir -p /data/minio
./minio server /data/minio
或指定端口和控制台:
MINIO_ROOT_USER=admin \
MINIO_ROOT_PASSWORD=admin123 \
./minio server /data/minio --console-address ":9001"
浏览器访问:
http://localhost:9001
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 \
go build -ldflags="-s -w" -o minio .
# macOS
GOOS=darwin GOARCH=amd64 go build -o minio .
# ARM64
GOOS=linux GOARCH=arm64 go build -o minio .
设置 Go 代理:
go env -w GOPROXY=https://goproxy.cn,direct
MinIO 编译时可能占用较多内存,建议:
GOMAXPROCS=1 go build
✅ 核心步骤:
git clone MinIO 源码go build 编译./minio server如果你需要:
可以继续告诉我你的具体场景。