0

0

如何在Linux安装Golang开发环境_Golang Linux安装与版本管理方法

P粉602998670

P粉602998670

发布时间:2026-01-14 02:17:26

|

892人浏览过

|

来源于php中文网

原创

推荐直接下载官方二进制包安装Go,避免系统包管理器滞后;用gvm管理多版本但注意其对1.18+模块兼容性差;GOPATH非必需,但需显式设置GOBIN;交叉编译应禁用CGO以确保可移植性。

如何在linux安装golang开发环境_golang linux安装与版本管理方法

直接下载二进制包解压即用,别碰系统包管理器

Ubuntu/Debian 的 apt install golang 或 CentOS 的 yum install golang 安装的是长期维护版(如 1.18 或 1.20),往往滞后最新稳定版 1–2 个大版本,且无法共存多个版本。官方明确推荐方式是下载 .tar.gz 二进制包手动部署,干净、可控、无权限冲突。

  • https://www.php.cn/link/81836b7cd16991abb7febfd7832927fd 找对应架构的包,例如 Linux x86_64 用 go1.22.5.linux-amd64.tar.gz
  • sudo tar -C /usr/local -xzf go1.22.5.linux-amd64.tar.gz 解压到 /usr/local/go(这是 Go 默认查找路径)
  • /usr/local/go/bin 加入 $PATH:在 ~/.bashrc~/.zshrc 中追加 export PATH=$PATH:/usr/local/go/bin,然后运行 source ~/.bashrc
  • 验证:go version 应输出 go version go1.22.5 linux/amd64

gvm 管理多版本 Go,但注意它不支持 Go 1.18+ 的模块式构建

gvm(Go Version Manager)能快速切换 go1.17go1.20go1.22 等版本,适合需要兼容老项目的场景。但它本质是封装了源码编译流程,对 Go 1.18 起引入的 GOEXPERIMENT=fieldtrack 和后续模块缓存机制适配不佳,容易在构建时触发 cannot find module providing package 类错误。

  • 安装 gvmcurl -sSL https://get.gvm.sh | sh,然后重启 shell 或执行 source ~/.gvm/scripts/gvm
  • 列出可用版本:gvm listall;安装指定版本:gvm install go1.20.14
  • 设为默认:gvm use go1.20.14 --default;临时切换:gvm use go1.22.5
  • 若项目依赖 go.mod 且报错,优先尝试用 go env -w GOMODCACHE=/tmp/modcache 隔离模块缓存,而非降级 gvm

设置 GOPATH 不再必需,但 GOBIN 要显式配置才安全

Go 1.11 引入模块(module)后,GOPATH 对代码组织已非强制要求。但若仍使用 go get 安装命令行工具(如 goplsair),不设 GOBIN 会导致二进制被装进 $GOPATH/bin,而该目录常未加入 PATH,造成命令找不到。

SmartB2B行业电子商务
SmartB2B行业电子商务

SmartB2B 是一款基于PHP、MySQL、Smarty的B2B行业电子商务网站管理系统,系统提供了供求模型、企业模型、产品模型、人才招聘模型、资讯模型等模块,适用于想在行业里取得领先地位的企业快速假设B2B网站,可以运行于Linux与Windows等多重服务器环境,安装方便,使用灵活。 系统使用当前流行的PHP语言开发,以MySQL为数据库,采用B/S架构,MVC模式开发。融入了模型化、模板

下载
  • 现代推荐做法:不设 GOPATH,让 Go 使用默认值 $HOME/go;但必须显式导出 GOBIN,例如:export GOBIN=$HOME/go/bin
  • 确保 $GOBINPATH 中靠前位置,避免与系统同名命令冲突(如某些发行版自带的 goimports
  • 验证:go install golang.org/x/tools/gopls@latest 后,which gopls 应返回 $HOME/go/bin/gopls

检查 CGO_ENABLEDGOOS/GOARCH 交叉编译是否生效

本地开发常需生成其他平台可执行文件(如 Linux 编译 Windows 二进制),但默认开启 cgo 会绑定宿主机 C 工具链,导致交叉编译失败或运行时 panic。关键不是“能不能编”,而是“编出来的能不能跑”。

立即学习go语言免费学习笔记(深入)”;

  • 禁用 cgo 可保证纯静态链接:CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o app.exe main.go
  • 若代码用了 net 包且 CGO_ENABLED=0,DNS 解析会回退到 Go 自实现(慢但可靠);启用 cgo 则依赖系统 libc,跨平台时大概率失效
  • 查看当前环境:go env CGO_ENABLED GOOS GOARCH;临时覆盖只需在 go build 命令前加参数,无需改全局 go env -w
go env -w GO111MODULE=on
go env -w GOPROXY=https://proxy.golang.org,direct
go env -w GOSUMDB=sum.golang.org
Go 模块代理和校验数据库的设置必须在首次 go mod init 前完成,否则会因国内网络问题卡在 go: downloading。这些变量一旦写入,就持续生效,删掉 go.mod 也不会自动重置。

相关专题

更多
golang如何定义变量
golang如何定义变量

golang定义变量的方法:1、声明变量并赋予初始值“var age int =值”;2、声明变量但不赋初始值“var age int”;3、使用短变量声明“age :=值”等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

178

2024.02.23

golang有哪些数据转换方法
golang有哪些数据转换方法

golang数据转换方法:1、类型转换操作符;2、类型断言;3、字符串和数字之间的转换;4、JSON序列化和反序列化;5、使用标准库进行数据转换;6、使用第三方库进行数据转换;7、自定义数据转换函数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

226

2024.02.23

golang常用库有哪些
golang常用库有哪些

golang常用库有:1、标准库;2、字符串处理库;3、网络库;4、加密库;5、压缩库;6、xml和json解析库;7、日期和时间库;8、数据库操作库;9、文件操作库;10、图像处理库。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

337

2024.02.23

golang和python的区别是什么
golang和python的区别是什么

golang和python的区别是:1、golang是一种编译型语言,而python是一种解释型语言;2、golang天生支持并发编程,而python对并发与并行的支持相对较弱等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

208

2024.03.05

golang是免费的吗
golang是免费的吗

golang是免费的。golang是google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的开源编程语言,采用bsd开源协议。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

388

2024.05.21

golang结构体相关大全
golang结构体相关大全

本专题整合了golang结构体相关大全,想了解更多内容,请阅读专题下面的文章。

195

2025.06.09

golang相关判断方法
golang相关判断方法

本专题整合了golang相关判断方法,想了解更详细的相关内容,请阅读下面的文章。

189

2025.06.10

golang数组使用方法
golang数组使用方法

本专题整合了golang数组用法,想了解更多的相关内容,请阅读专题下面的文章。

192

2025.06.17

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

3

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.1万人学习

Git 教程
Git 教程

共21课时 | 2.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号