0

0

Go语言在Ubuntu系统上的环境搭建:详解源码编译与多种安装途径

花韻仙語

花韻仙語

发布时间:2025-11-26 19:48:07

|

405人浏览过

|

来源于php中文网

原创

Go语言在Ubuntu系统上的环境搭建:详解源码编译与多种安装途径

本文详细介绍了在ubuntu系统上安装go语言开发环境的多种方法,包括从源码编译、使用官方安装包以及利用gvm、apt-get等第三方工具。针对旧版本ubuntu系统可能遇到的`apt-get`仓库问题,文章特别强调了源码编译的详细步骤,并提供了环境配置、版本验证及常见问题的解决方案,旨在帮助开发者选择最适合自身需求的安装方式,高效搭建go开发环境。

Go语言作为一门高效、简洁的编程语言,其开发环境的搭建是学习和使用的第一步。在Linux系统,尤其是Ubuntu上,有多种方式可以安装Go,每种方法都有其适用场景。本文将详细阐述这些安装方法,并提供具体的操作步骤。

一、 Go语言安装方法概述

Go语言的安装主要有以下三种主流方式:

  1. 从源码编译安装: 适用于对系统环境有特定要求、希望使用最新开发版本或解决包管理器版本过旧问题的开发者。这种方法需要手动处理依赖和编译过程,但提供了最大的灵活性。
  2. 使用官方安装包: Go官方为Windows、Linux、macOS等主流操作系统提供了预编译的二进制安装包,这是最简单快捷的安装方式。
  3. 利用第三方工具或包管理器: 针对不同的操作系统,有相应的第三方工具或系统自带的包管理器可以简化Go的安装过程,例如Ubuntu的apt-get、macOS的Homebrew以及Go版本管理工具GVM等。

二、 从源码编译安装Go语言(推荐解决旧系统问题)

对于一些旧版本的Ubuntu系统(如Ubuntu 12.10),系统自带的apt-get仓库可能提供过时的Go版本,甚至由于仓库地址失效导致安装失败。此时,从源码编译安装Go是最佳选择。

1. 准备编译环境

在Unix-like系统上,编译Go语言需要gcc或类似的C编译器,以及其他一些构建工具。

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

sudo apt-get update
sudo apt-get install bison ed gawk gcc libc6-dev make

2. 安装Mercurial版本控制工具

Go语言的源码由Mercurial管理,因此需要先安装Mercurial才能下载源码。

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

3. 下载Go源码

选择一个合适的目录来存放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 流程,但请读者根据实际情况调整。

4. 编译Go源码

进入下载好的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目录。

5. 验证Go版本

编译完成后,可以验证Go是否正确安装。

~/go/bin/go version

6. 配置Go环境变量

为了在任何目录下都能方便地使用Go命令,并设置Go的工作区,需要配置相关的环境变量。

萝卜简历
萝卜简历

免费在线AI简历制作工具,帮助求职者轻松完成简历制作。

下载
  • GOROOT: Go语言的安装路径,指向Go的根目录。
  • GOPATH: Go语言的工作区路径,用于存放你的Go项目源码、第三方包以及编译后的二进制文件。它不应与GOROOT相同。
  • PATH: 将GOROOT/bin和GOPATH/bin添加到系统的可执行文件搜索路径中。

打开或创建~/.profile文件(或~/.bashrc、~/.zshrc等,取决于你的shell),并添加以下内容:

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语言

Go官方为各平台提供了便捷的安装包,通常是推荐给大多数用户的安装方式。

  1. 下载安装包: 访问Go语言官方下载页面(https://golang.org/dl/),根据你的操作系统选择对应的二进制安装包(例如,Linux用户选择goX.Y.Z.linux-amd64.tar.gz)。
  2. 解压安装: 将下载的压缩包解压到/usr/local目录(这是官方推荐的路径)。
    sudo tar -C /usr/local -xzf goX.Y.Z.linux-amd64.tar.gz

    (请将X.Y.Z替换为实际的版本号)

  3. 配置环境变量: 同样需要配置GOROOT、GOPATH和PATH环境变量。如果安装到/usr/local/go,则GOROOT为/usr/local/go。
    echo "export GOROOT=/usr/local/go" >> ~/.profile
    echo "export GOPATH=\$HOME/gocode" >> ~/.profile
    echo "export PATH=\$PATH:\$GOROOT/bin:\$GOPATH/bin" >> ~/.profile
    source ~/.profile

四、 利用第三方工具或包管理器安装Go语言

1. 使用GVM(Go Version Manager)

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 # 设置为默认使用此版本

2. 使用apt-get(适用于Ubuntu)

对于较新版本的Ubuntu,可以通过PPA(Personal Package Archive)来安装最新或稳定的Go版本,这比默认仓库更可靠。

sudo add-apt-repository ppa:gophers/go
sudo apt-get update
sudo apt-get install golang-stable

这种方法通常会替你自动配置大部分环境变量。

3. 使用Homebrew(适用于macOS)

如果你是macOS用户,Homebrew是一个非常方便的包管理器。

brew install go

五、 注意事项与总结

  • 选择合适的安装方式:
    • 源码编译: 当系统apt-get仓库版本过旧、失效或需要特定Go版本时首选。
    • 官方安装包: 最直接、最通用的方法。
    • GVM: 适合需要管理多个Go版本的开发者。
    • apt-get (PPA): Ubuntu用户获取稳定Go版本的便捷方式。
  • 环境变量的重要性: 无论采用哪种安装方式,正确配置GOROOT、GOPATH和PATH环境变量都是确保Go开发环境正常工作的关键。务必在.profile、.bashrc或.zshrc中设置,并source文件使其生效。
  • GOPATH的结构: GOPATH目录下通常包含src(存放源码)、pkg(存放编译后的包文件)和bin(存放可执行程序)三个子目录。
  • 解决curl: command not found: 在尝试使用curl命令安装GVM或其他工具前,如果遇到此错误,请先执行sudo apt-get install curl进行安装。

通过以上详细的教程,无论是面对老旧系统还是追求最新版本,开发者都能够选择最适合自己的方法,顺利在Ubuntu系统上搭建Go语言开发环境,开启Go编程之旅。

相关专题

更多
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相关判断方法,想了解更详细的相关内容,请阅读下面的文章。

190

2025.06.10

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

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

192

2025.06.17

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号