讲师中心 微信公众号
AI工具推荐 视频效率加速

如何在Ubuntu等类Unix系统上安装Go语言:多版本管理与源码编译实践

雨枫小哥_6559

雨枫小哥_6559

发布时间:2025-11-26 22:00:08

|

711人浏览过

|

来源于php中文网

原创

如何在Ubuntu等类Unix系统上安装Go语言:多版本管理与源码编译实践

本教程详细介绍了在类unix系统(尤其ubuntu)上安装go语言的多种方法,包括从源码编译、使用官方安装包以及利用gvm、apt-get等第三方工具。文章旨在解决常见安装问题,提供清晰的步骤和环境配置指南,确保go开发环境的顺利搭建,特别适用于面对旧系统或标准包管理器故障时的场景。

Go语言以其高效和简洁性在现代软件开发中占据一席之地。为了顺利进行Go语言开发,首先需要正确配置其开发环境。本文将深入探讨在类Unix系统上安装Go的多种途径,并提供详细的步骤指导,帮助开发者克服在安装过程中可能遇到的挑战,例如旧版本系统包管理器的限制或依赖缺失问题。

一、从源码编译安装Go语言

从源码编译安装Go语言是一种灵活且强大的方法,尤其适用于系统自带的包管理器版本过旧、仓库不可用,或需要特定Go版本的情况。此方法能确保您获得最新或指定版本的Go,并对安装过程拥有完全的控制权。

1. 安装编译Go所需的依赖

在开始编译Go之前,您的系统需要安装一些基本的开发工具和库。对于Ubuntu系统,可以通过apt-get命令安装:

sudo apt-get update # 更新包列表,确保能获取最新依赖信息
sudo apt-get install bison ed gawk gcc libc6-dev make

这些工具包括GNU C编译器(gcc)、make工具、以及其他用于构建Go标准库的实用程序。

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

2. 安装Mercurial版本控制工具

Go语言的早期源码管理使用Mercurial。虽然现代Go项目主要托管在Git上,但对于旧版本的Go或特定场景,Mercurial仍然是必需的。

sudo apt-get install python-setuptools python-dev build-essential
sudo apt-get install mercurial

这些命令将安装Python相关的构建工具和Mercurial本身。

3. 下载Go源码

在确保Mercurial已安装后,您可以克隆Go语言的源码仓库。请注意,以下命令中的仓库地址适用于Go的早期版本,现代Go源码主要托管在go.googlesource.com/go或GitHub镜像上。但为遵循原始问题背景(Ubuntu 12.10及早期Go版本),我们使用以下命令:

hg clone -u release https://code.google.com/p/go ~/go_src

此命令会将Go的发布版本源码克隆到您的家目录下的go_src文件夹中。为了保持与后续环境变量设置的一致性,通常建议将其克隆到$HOME/go,但此处为了避免与最终安装目录混淆,暂时使用~/go_src。之后您可以将其移动到您希望的GOROOT位置。

4. 编译Go源码

进入源码目录并执行编译脚本。此过程可能需要几分钟。

cd ~/go_src/src
./all.bash

如果编译和测试成功,您将看到类似“ALL TESTS PASSED”的成功消息,并提示Go已安装到指定目录(例如/home/ubuntu/go)。

5. 配置Go环境变量

编译完成后,需要设置Go相关的环境变量,以便系统能够找到Go编译器和工具。

echo "export GOROOT=$HOME/go_src" >> ~/.profile # Go安装目录
echo "export GOPATH=$HOME/gocode" >> ~/.profile # Go工作区目录
echo "export PATH=$PATH:$GOROOT/bin" >> ~/.profile
echo "export PATH=$PATH:$GOPATH/bin" >> ~/.profile
source ~/.profile
  • GOROOT: 指向Go语言安装的根目录,即Go编译器和标准库的存放位置。
  • GOPATH: 指向您的Go工作区。这是您存放Go项目源码、第三方包和编译生成的可执行文件的目录。建议将其设置为一个独立于GOROOT的目录。
  • PATH: 将$GOROOT/bin和$GOPATH/bin添加到系统PATH中,以便可以直接在终端中运行Go命令和您自己编写的Go程序。

6. 验证安装

配置完环境变量后,打开一个新的终端窗口或重新加载~/.profile,然后验证Go版本:

go version

如果显示Go的版本信息,则表示安装成功。

二、使用官方预编译安装包

官方提供的预编译安装包是安装Go最简便的方式,适用于大多数主流操作系统(Windows, macOS, Linux)。这些包通常包含Go的二进制文件和标准库,省去了源码编译的步骤。

1. 下载安装包

访问Go语言官方下载页面(go.dev/dl/),根据您的操作系统和架构下载对应的压缩包(例如,Linux用户下载.tar.gz文件)。

2. 解压并放置

将下载的压缩包解压到您希望安装Go的目录。通常,建议将其解压到/usr/local目录下,这样Go就会安装在/usr/local/go。

Git Changelog Generator
Git Changelog Generator

使用约定式提交(Conventional Commits)从 Git 历史记录中生成结构化变更日志,支持多种格式、AI 增强型描述以及可自定义的范围……

下载
sudo rm -rf /usr/local/go # 如果之前有安装,先删除旧版本
sudo tar -C /usr/local -xzf go<VERSION>.<OS>-<ARCH>.tar.gz

请将<VERSION>、<OS>和<ARCH>替换为实际下载的文件名中的版本、操作系统和架构信息。

3. 配置环境变量

与源码安装类似,您需要配置GOROOT和PATH环境变量。GOROOT应指向您解压Go包的目录(例如/usr/local/go)。

echo "export GOROOT=/usr/local/go" >> ~/.profile
echo "export GOPATH=$HOME/gocode" >> ~/.profile # 建议设置一个独立的GOPATH
echo "export PATH=$PATH:$GOROOT/bin" >> ~/.profile
echo "export PATH=$PATH:$GOPATH/bin" >> ~/.profile
source ~/.profile

配置完成后,使用go version验证安装。

三、利用第三方工具安装

除了官方方法,还有许多第三方工具和包管理器可以简化Go的安装过程,特别是在特定操作系统或需要管理多个Go版本时。

1. 使用GVM (Go Version Manager) 进行多版本管理

GVM是一个Go语言的多版本管理工具,类似于Ruby的RVM。它允许您在同一系统上安装和切换不同版本的Go,对于需要测试兼容性或维护旧项目的开发者非常有用。

a) 安装curl (如果未安装)

GVM的安装脚本依赖于curl命令来下载。如果您的系统提示curl: command not found,请先安装它:

sudo apt-get update
sudo apt-get install curl
b) 安装GVM

执行以下命令安装GVM:

bash < <(curl -s -S -L https://raw.github.com/moovweb/gvm/master/binscripts/gvm-installer)

安装完成后,GVM会提示您将其初始化脚本添加到您的shell配置文件中(例如~/.bashrc或~/.profile)。请按照提示操作并重新加载shell。

c) 安装和使用Go版本

使用GVM安装特定版本的Go:

gvm install go1.0.3 # 安装Go 1.0.3版本
gvm use go1.0.3     # 切换到Go 1.0.3版本

您也可以安装其他Go版本,并使用gvm use <version>命令在它们之间切换。

2. 通过apt-get (适用于Ubuntu/Debian)

对于Ubuntu和Debian用户,apt-get是管理软件包的标准工具。然而,系统自带仓库中的Go版本可能不是最新的,甚至可能因仓库过期而导致404错误。为了获取更新且稳定的Go版本,推荐使用PPA(Personal Package Archive)。

sudo add-apt-repository ppa:gophers/go # 添加Go社区维护的PPA
sudo apt-get update                   # 更新包列表
sudo apt-get install golang-stable    # 安装稳定版Go

此方法通常会自动配置Go的环境变量,但仍建议您手动检查GOPATH是否符合您的开发习惯,并根据需要进行调整。

3. 通过Homebrew (适用于macOS)

Homebrew是macOS上流行的包管理器。通过Homebrew安装Go非常简单:

brew install go

Homebrew会自动处理Go的安装和环境变量配置。

总结与注意事项

本文详细介绍了在类Unix系统上安装Go语言的三种主要方法。在选择安装方式时,请考虑以下因素:

  • 系统版本和仓库可用性: 对于较旧的系统或遇到apt-get 404错误时,从源码编译是最可靠的选择。
  • 便捷性: 官方预编译包和包管理器(如apt-get、Homebrew)通常提供最便捷的安装体验。
  • 版本管理需求: 如果您需要在不同Go版本之间切换,GVM是理想的工具。
  • 环境变量: 无论采用哪种安装方式,正确配置GOROOT、GOPATH和PATH环境变量都是至关重要的。它们决定了Go工具链的可用性和项目的工作方式。

在安装过程中,请务必仔细阅读终端输出信息,并根据提示进行操作。遇到问题时,检查网络连接、仓库配置和依赖包是否完整,通常能解决大部分安装难题。通过遵循本教程的指导,您将能够顺利搭建Go语言开发环境,为您的Go编程之旅打下坚实基础。

热门AI工具

更多
音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

相关专题

更多
Linux安装Ruby语言详细教程
Linux安装Ruby语言详细教程

本专题整合了Linux安装配置Ruby相关教程,阅读专题下面的文章了解更多详细操作。

112

2026.04.02

curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

3483

2023.06.14

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

775

2023.10.30

Go中Type关键字的用法
Go中Type关键字的用法

Go中Type关键字的用法有定义新的类型别名或者创建新的结构体类型。本专题为大家提供Go相关的文章、下载、课程内容,供大家免费下载体验。

2589

2023.09.06

go怎么实现链表
go怎么实现链表

go通过定义一个节点结构体、定义一个链表结构体、定义一些方法来操作链表、实现一个方法来删除链表中的一个节点和实现一个方法来打印链表中的所有节点的方法实现链表。

5147

2023.09.25

go语言编程软件有哪些
go语言编程软件有哪些

go语言编程软件有Go编译器、Go开发环境、Go包管理器、Go测试框架、Go文档生成器、Go代码质量工具和Go性能分析工具等。本专题为大家提供go语言相关的文章、下载、课程内容,供大家免费下载体验。

662

2023.10.13

0基础如何学go语言
0基础如何学go语言

0基础学习Go语言需要分阶段进行,从基础知识到实践项目,逐步深入。php中文网给大家带来了go语言相关的教程以及文章,欢迎大家前来学习。

6905

2023.10.26

Go语言实现运算符重载有哪些方法
Go语言实现运算符重载有哪些方法

Go语言不支持运算符重载,但可以通过一些方法来模拟运算符重载的效果。使用函数重载来模拟运算符重载,可以为不同的类型定义不同的函数,以实现类似运算符重载的效果,通过函数重载,可以为不同的类型实现不同的操作。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2416

2024.02.23

FrankenPHP集成Laravel详细教程
FrankenPHP集成Laravel详细教程

本专题提供FrankenPHP集成Laravel的详细配置指南,全面解析运行原理、开发环境搭建、Caddyfile配置、Octane工作模式、数据库连接、队列任务、定时任务和生产环境优化,解决部署过程中常见的报错与兼容性问题。

0

2026.10.08

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

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

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn