You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ARM架构Ubuntu从源码编译git-lfs遇Go包找不到问题

解决ARM Ubuntu上编译git-lfs时缺失context/httptrace包的问题

你的问题核心很明确:你安装的Go版本(go1.2.1)过于老旧,完全不满足git-lfs源码编译的依赖要求。

为什么会找不到这些包?

  • context 包是在Go 1.7版本才正式被纳入标准库的,在Go 1.7之前它只是一个第三方包(golang.org/x/net/context),而git-lfs的代码是基于标准库的context编写的,所以你的老版本Go根本识别不了这个包。
  • net/http/httptrace 则是Go 1.10版本才新增的标准库模块,Go 1.2.1自然没有这个模块的定义。

具体解决步骤

1. 卸载旧版本的Go

先把系统里的老版本Go清理干净:

sudo apt-get remove golang-go
sudo apt-get autoremove

2. 安装适配ARM架构的新版Go

推荐安装Go的长期支持版本(比如1.21系列),适配ARM架构的安装包可以直接从官方下载:

# 这里以ARMv6架构为例,如果你是ARM64,替换成linux-arm64.tar.gz
wget https://dl.google.com/go/go1.21.5.linux-armv6l.tar.gz
sudo tar -C /usr/local -xzf go1.21.5.linux-armv6l.tar.gz

接下来配置环境变量,编辑~/.bashrc文件:

nano ~/.bashrc

在文件末尾添加:

export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go

保存退出后刷新环境变量:

source ~/.bashrc

验证版本是否安装成功:

go version

此时应该显示类似 go version go1.21.5 linux/arm 的输出。

3. 重新编译git-lfs

首先拉取git-lfs的源码(如果还没获取的话):

go get github.com/git-lfs/git-lfs/v3/cmd/git-lfs

进入源码目录执行编译:

cd $GOPATH/src/github.com/git-lfs/git-lfs
go build ./cmd/git-lfs

编译完成后,把生成的二进制文件放到系统可执行路径:

sudo cp git-lfs /usr/local/bin/

最后验证git-lfs是否安装成功:

git lfs install

额外提示

如果你实在不想升级Go,理论上可以寻找git-lfs的极旧版本(兼容Go 1.2的),但非常不推荐——旧版本不仅缺少大量功能,还存在安全漏洞,而且很难找到维护状态良好的源码分支。升级Go是最稳妥、最省心的解决方案。

内容的提问来源于stack exchange,提问作者sagism

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:58:52