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。

Pic Copilot
Pic Copilot

AI时代的顶级电商设计师,轻松打造爆款产品图片

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

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

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 命令在它们之间切换。

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编程之旅打下坚实基础。

相关专题

更多
python开发工具
python开发工具

php中文网为大家提供各种python开发工具,好的开发工具,可帮助开发者攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。php中文网还为大家带来python相关课程以及相关文章等内容,供大家免费下载使用。

752

2023.06.15

python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

636

2023.07.20

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

758

2023.07.25

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

618

2023.07.31

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

1262

2023.08.03

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

547

2023.08.04

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

577

2023.08.04

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

706

2023.08.11

Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

36

2026.01.14

热门下载

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

精品课程

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

共48课时 | 7.1万人学习

Git 教程
Git 教程

共21课时 | 2.7万人学习

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

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