0

0

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

霞舞

霞舞

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

|

691人浏览过

|

来源于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。

GentleAI
GentleAI

GentleAI是一个高效的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工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
curl_exec
curl_exec

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

455

2023.06.14

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

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

183

2023.10.30

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

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

238

2023.09.06

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

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

462

2023.09.25

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

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

265

2023.10.13

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

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

722

2023.10.26

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

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

196

2024.02.23

Go语言中的运算符有哪些
Go语言中的运算符有哪些

Go语言中的运算符有:1、加法运算符;2、减法运算符;3、乘法运算符;4、除法运算符;5、取余运算符;6、比较运算符;7、位运算符;8、按位与运算符;9、按位或运算符;10、按位异或运算符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

241

2024.02.23

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

26

2026.03.13

热门下载

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

精品课程

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

共48课时 | 10.6万人学习

Git 教程
Git 教程

共21课时 | 4.2万人学习

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

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