
本文详细介绍了在ubuntu系统上安装go语言开发环境的多种方法,包括从源码编译、使用官方安装包以及利用gvm、apt-get等第三方工具。针对旧版本ubuntu系统可能遇到的`apt-get`仓库问题,文章特别强调了源码编译的详细步骤,并提供了环境配置、版本验证及常见问题的解决方案,旨在帮助开发者选择最适合自身需求的安装方式,高效搭建go开发环境。
Go语言作为一门高效、简洁的编程语言,其开发环境的搭建是学习和使用的第一步。在Linux系统,尤其是Ubuntu上,有多种方式可以安装Go,每种方法都有其适用场景。本文将详细阐述这些安装方法,并提供具体的操作步骤。
Go语言的安装主要有以下三种主流方式:
对于一些旧版本的Ubuntu系统(如Ubuntu 12.10),系统自带的apt-get仓库可能提供过时的Go版本,甚至由于仓库地址失效导致安装失败。此时,从源码编译安装Go是最佳选择。
在Unix-like系统上,编译Go语言需要gcc或类似的C编译器,以及其他一些构建工具。
sudo apt-get update sudo apt-get install bison ed gawk gcc libc6-dev make
Go语言的源码由Mercurial管理,因此需要先安装Mercurial才能下载源码。
sudo apt-get install python-setuptools python-dev build-essential sudo apt-get install mercurial
选择一个合适的目录来存放Go源码,通常建议在用户主目录下。注意,Go的安装目录(GOROOT)不应与源码下载目录重合。
# 进入用户主目录 cd ~ # 克隆Go语言的release分支源码 hg clone -u release https://code.google.com/p/go
注意: https://code.google.com/p/go 是旧的Go源码仓库地址,可能已不可用。当前Go源码托管在GitHub:https://github.com/golang/go。如果遇到下载问题,请尝试从GitHub克隆:
git clone https://github.com/golang/go.git
重要提示: 如果使用 git clone 下载源码,后续编译步骤可能会有所不同。传统的 all.bash 脚本是针对 hg 仓库结构的。对于 git 仓库,通常直接进入 go/src 目录执行 ./make.bash。本文档将沿用原始答案的 hg clone 和 all.bash 流程,但请读者根据实际情况调整。
进入下载好的Go源码目录,并执行编译脚本。这个过程可能需要几分钟。
cd go/src ./all.bash
如果编译和测试成功,你将看到类似如下的输出信息:
--- ALL TESTS PASSED --- Installed Go for linux/amd64 in /home/ubuntu/go. Installed commands in /home/ubuntu/go/bin. *** You need to add /home/ubuntu/go/bin to your $PATH. *** The compiler is 6g.
这表明Go已经成功安装到/home/ubuntu/go目录。
编译完成后,可以验证Go是否正确安装。
~/go/bin/go version
为了在任何目录下都能方便地使用Go命令,并设置Go的工作区,需要配置相关的环境变量。
打开或创建~/.profile文件(或~/.bashrc、~/.zshrc等,取决于你的shell),并添加以下内容:
Motiff妙多
Motiff妙多是一款AI驱动的界面设计工具,定位为“AI时代设计工具”
334
查看详情
echo "export GOROOT=\$HOME/go" >> ~/.profile echo "export GOPATH=\$HOME/gocode" >> ~/.profile echo "export PATH=\$PATH:\$GOROOT/bin:\$GOPATH/bin" >> ~/.profile # 使配置立即生效 source ~/.profile
这里我们将GOPATH设置为$HOME/gocode,你也可以根据自己的喜好修改。
配置完成后,关闭当前终端,重新打开一个新的终端,或执行source ~/.profile使环境变量生效。然后再次验证:
go version
此时应该能直接执行go version命令。
Go官方为各平台提供了便捷的安装包,通常是推荐给大多数用户的安装方式。
sudo tar -C /usr/local -xzf goX.Y.Z.linux-amd64.tar.gz
(请将X.Y.Z替换为实际的版本号)
echo "export GOROOT=/usr/local/go" >> ~/.profile echo "export GOPATH=\$HOME/gocode" >> ~/.profile echo "export PATH=\$PATH:\$GOROOT/bin:\$GOPATH/bin" >> ~/.profile source ~/.profile
GVM是一个Go语言的多版本管理工具,类似于Ruby的RVM,非常适合需要在不同Go版本之间切换的开发者。
前提: 确保系统安装了curl。如果遇到curl: command not found错误,请先安装:
sudo apt-get update sudo apt-get install curl
安装GVM:
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
安装Go版本: 安装完成后,需要激活GVM(按照安装提示或执行source ~/.gvm/scripts/gvm)。然后使用GVM安装特定版本的Go:
gvm install go1.22.0 # 安装最新稳定版,或指定版本如 go1.0.3 gvm use go1.22.0 --default # 设置为默认使用此版本
对于较新版本的Ubuntu,可以通过PPA(Personal Package Archive)来安装最新或稳定的Go版本,这比默认仓库更可靠。
sudo add-apt-repository ppa:gophers/go sudo apt-get update sudo apt-get install golang-stable
这种方法通常会替你自动配置大部分环境变量。
如果你是macOS用户,Homebrew是一个非常方便的包管理器。
brew install go
ot found: 在尝试使用curl命令安装GVM或其他工具前,如果遇到此错误,请先执行sudo apt-get install curl进行安装。通过以上详细的教程,无论是面对老旧系统还是追求最新版本,开发者都能够选择最适合自己的方法,顺利在Ubuntu系统上搭建Go语言开发环境,开启Go编程之旅。
以上就是Go语言在Ubuntu系统上的环境搭建:详解源码编译与多种安装途径的详细内容,更多请关注其它相关文章!
相关文章:
Lar*el用户头像管理:实现图片缩放、存储与旧文件安全删除的最佳实践
单12V-2×6实现为RTX 5090供电750W!甚至都没敢跑分
使用PHP从URL路径中提取倒数第二个片段
支付宝解绑银行卡步骤_支付宝如何解除绑定银行卡
c++ dfs和bfs代码 c++深度广度优先搜索算法
Mac终端命令大全_Mac常用Terminal指令速查
谷歌邮箱网页版官方页面入口 谷歌邮箱网页端快速访问
如何提高微信支付的安全性_微信支付安全防护与设置建议
可靠CSGO开箱平台解析 CSGO开箱网合集
如何在PHP中实现基于MySQL的动态分页查询
Vue.js 图片显示异常排查:理解应用挂载范围与DOM ID唯一性
期待已久:小米17 Ultra、小米首款NAS本月登场
优化 Python 函数中的条件逻辑:解决 if-else 嵌套与参数选择问题
QQ邮箱登录首页官网地址2026 QQ邮箱官方网页入口
晋江读书网页版在线登录 晋江读书电脑版官网
Win11怎么设置鼠标主按键_Win11鼠标左右键功能互换
2025年云电脑操作系统体验 | 无需本地硬件,随时随地使用高性能PC
印象笔记如何设提醒任务防漏执行_印象笔记设提醒任务防漏执行【任务提醒】
谷歌浏览器一键优化方案_谷歌浏览器直达主页极速不卡版
PHP:从文本中提取带逗号的数字价格教程
TikTok评论显示延迟如何处理 TikTok评论刷新优化方法
Golang如何使用const iota_Go iota常量计数器讲解
小猿搜题在线学习页面在哪_小猿搜题在线学习中心入口
漫蛙网页登录入口 漫蛙漫画官方授权网址
顺丰国际快递查询 国际件官方查询入口
深入理解J*aScript中的B样条曲线与节点向量生成
深入理解J*aScript Promise异步执行与微任务队列
抖音小游戏合成大西瓜免费秒玩入口链接 抖音小游戏热门合集秒玩网站
实现全屏滚动与导航点:专业教程
支付宝碰一碰设备是REDMI手机吗 博主拆机辟谣:处理器、内存都不一样
怎样使用“本地安全策略”提升Windows安全性_Secpol.msc配置指南【高手】
冬*霸灯泡不亮怎么办_浴霸取暖灯一盏不亮的灯座清洁修复法
微博网页版首页入口 微博电脑端官网登录链接
支付宝如何设置安全保护_支付宝安全设置的全面教程
生成rdflib自定义SPARQL函数:参数匹配与实践指南
EMS快递官网app_中国邮政速递物流手机客户端
Descript怎样用AI剪辑自动去噪_Descript用AI剪辑自动去噪【自动降噪】
Python async/await 协程:CPU密集型任务的陷阱与解决方案
win11开机启动修复循环怎么办 Win11无法进入系统高级启动解决方法【修复】
微博网页版官方账号登录 微博网页版内容浏览使用指南
UC浏览器官网入口2025最新 UC浏览器网页版正式地址
TikTok国际版网页端快速入口 TikTok全球版短视频浏览教程
火锅吃太多会怎样 火锅吃太多会上火吗
Windows7怎么硬盘安装 Windows7提取ISO镜像到非系统盘并运行setup.exe实现硬盘直装【教程】
菜鸟取件码是什么怎么查 最全查询渠道汇总
京东京造J1和网易云音乐氧气真无线有什么不同_国产电商蓝牙耳机音质对比
Yandex搜索引擎官网入口_俄罗斯Yandex免登录一键直达
使用Python高效删除Word宏并转换DOCM为DOCX格式
Angular响应式表单:实现提交后表单及按钮的禁用与只读化
手机屏幕碎了但能正常使用怎么办 手机外屏碎裂的修复建议