Posted in

Ubuntu 20.04安装Go语言详解:小白也能看懂的图文教程

第一章:Ubuntu 20.04与Go语言概述

Ubuntu 20.04(代号 Focal Fossa)是 Canonical 于 2020 年发布的一个长期支持版本(LTS),因其稳定性、安全性以及广泛的社区支持,成为服务器和开发环境的首选操作系统之一。它基于 Debian 架构,预装了 GNOME 桌面环境,并支持多种开发工具和语言,适合用于构建现代化的应用程序。

Go 语言(又称 Golang)是由 Google 开发的一种静态类型、编译型语言,以其简洁的语法、高效的并发支持和快速的编译速度受到开发者青睐。它特别适合构建高性能的后端服务、CLI 工具和云原生应用。

在 Ubuntu 20.04 上安装 Go 语言可通过以下步骤完成:

# 下载最新稳定版的 Go 二进制包(以 1.21 为例)
wget https://golang.org/dl/go1.21.linux-amd64.tar.gz

# 解压到 /usr/local 目录
sudo tar -C /usr/local -xzf go1.21.linux-amd64.tar.gz

# 配置环境变量(可添加到 ~/.bashrc 或 ~/.profile)
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

# 验证安装
go version

上述命令依次完成下载、解压、环境变量配置和版本验证。通过这些步骤,开发者可以在 Ubuntu 20.04 上快速搭建 Go 开发环境,为后续项目开发奠定基础。

第二章:安装前的准备工作

2.1 系统环境检查与依赖更新

在部署或升级系统服务前,进行系统环境检查与依赖更新是保障服务稳定运行的关键步骤。这一过程通常包括操作系统版本确认、内核参数调整、基础运行库检查以及软件依赖包的更新。

环境检查清单

以下是一些常见的系统环境检查项:

  • CPU架构与核心数
  • 内存容量与使用情况
  • 磁盘空间与挂载点
  • 操作系统版本与内核版本
  • 网络配置与防火墙状态

自动化检查脚本示例

#!/bin/bash

# 检查内存使用情况
free -h

# 查看磁盘空间
df -h /

# 显示操作系统版本
cat /etc/os-release

# 查看内核版本
uname -r

上述脚本依次检查了内存、磁盘、操作系统版本和内核版本,便于快速掌握系统基础状态。

依赖更新流程

graph TD
    A[开始] --> B{是否联网}
    B -->|是| C[更新软件源列表]
    C --> D[升级已安装包]
    D --> E[安装缺失依赖]
    B -->|否| F[手动导入依赖包]
    F --> E
    E --> G[完成环境准备]

该流程图展示了从网络状态判断开始,到最终完成系统依赖更新的全过程。

2.2 理解Go语言版本选择

选择合适的Go语言版本对项目稳定性与功能支持至关重要。Go官方维护多个版本分支,其中最新稳定版通常包含最新特性与优化,而长期支持版(LTS)则更适合企业级生产环境。

版本类型与适用场景

Go官方提供两类主要版本:

  • 稳定版(Stable):适合开发最新功能应用,支持最新模块与工具链;
  • 长期支持版(LTS):适用于生产环境,保障长期安全更新与稳定性。

版本查看与切换工具

Go自带工具支持版本管理:

go version

此命令输出当前Go版本信息,例如:

go version go1.21.3 darwin/amd64

推荐使用 ggoenv 工具实现多版本切换,便于测试与兼容性验证。

2.3 下载Go语言安装包

在开始安装Go语言环境之前,首先需要根据操作系统选择合适的安装包。Go官方支持Windows、Linux和macOS系统,访问Go官方下载页面即可查看所有可用版本。

选择适合的版本

在下载页面中,可以根据系统架构选择对应的安装包:

  • Windows:推荐使用.msi安装包,便于图形化安装;
  • Linux:通常使用.tar.gz压缩包;
  • macOS:使用.pkg安装包较为方便。

下载命令示例(Linux系统)

wget https://golang.org/dl/go1.21.3.linux-amd64.tar.gz

逻辑分析:

  • wget:Linux中用于从网络上下载文件的命令行工具;
  • https://golang.org/dl/go1.21.3.linux-amd64.tar.gz:这是Go 1.21.3版本的Linux 64位安装包地址。

2.4 验证下载文件的完整性

在完成文件下载后,确保文件未在传输过程中被损坏或篡改至关重要。常见的完整性校验方式包括使用哈希算法(如 MD5、SHA-256)进行比对。

常用哈希校验方式

算法 特点 安全性
MD5 速度快,易冲突
SHA-1 已被破解 中低
SHA-256 安全性高,广泛使用

使用命令校验文件完整性

sha256sum downloaded_file.tar.gz

逻辑说明:
该命令会输出文件的 SHA-256 哈希值,与官方提供的哈希值进行比对,若一致则说明文件完整可信。

自动化校验流程

graph TD
    A[开始下载文件] --> B{下载完成?}
    B --> C[计算本地哈希]
    C --> D{哈希匹配?}
    D -- 是 --> E[标记文件为可信]
    D -- 否 --> F[终止流程并报警]

通过自动化流程,可在大规模部署或无人值守场景中确保文件来源可靠,防止因文件损坏或恶意篡改引发系统故障。

2.5 配置基础工作目录结构

良好的工作目录结构是项目可维护性和协作效率的基础。一个清晰的目录规划不仅能提升开发效率,还能为后续的自动化流程提供支持。

推荐的基础目录结构如下:

project-root/
├── src/                # 存放源代码
├── assets/             # 存放静态资源,如图片、字体等
├── config/             # 存放配置文件
├── public/             # 存放无需处理的静态资源
├── dist/               # 构建输出目录
└── README.md           # 项目说明文档

配置示例

// vite.config.js
import { defineConfig } from 'vite';
export default defineConfig({
  root: 'src',           // 指定源码根目录
  build: {
    outDir: '../dist'    // 指定构建输出路径
  }
});
  • root:指定开发服务器的根目录,避免在代码中使用绝对路径问题;
  • outDir:构建时输出文件的目录,确保与项目结构一致,便于部署。

通过合理配置,可以实现开发与构建路径的一致性,减少环境差异带来的问题。

第三章:Go语言的安装与配置

3.1 解压安装包并部署到系统目录

在完成安装包的下载后,下一步是将其解压并部署到系统的指定目录中。这一步通常涉及归档文件的提取和文件权限的设置。

解压操作

以常见的 .tar.gz 安装包为例,使用如下命令进行解压:

tar -zxvf package.tar.gz -C /opt/app/
  • z:表示通过 gzip 压缩
  • x:执行解压操作
  • v:显示解压过程
  • f:指定文件名

解压完成后,应用程序的目录结构将被放置在 /opt/app/ 路径下。

部署到系统路径

为确保程序能被全局访问,需将其可执行文件软链接至 /usr/local/bin/

ln -s /opt/app/package/main_exec /usr/local/bin/myapp

部署流程示意

graph TD
    A[获取安装包] --> B{检查文件格式}
    B -->|tar.gz| C[使用tar命令解压]
    C --> D[指定部署路径如/opt/app/]
    D --> E[设置系统软链接]
    E --> F[部署完成]

3.2 配置环境变量GOROOT与GOPATH

在 Go 语言开发中,正确配置 GOROOTGOPATH 是构建开发环境的基础步骤。

GOROOT:Go 的安装路径

GOROOT 指向 Go 编译器和标准库的安装目录,通常为 /usr/local/go(Linux/macOS)或 C:\Go(Windows)。

示例配置(Linux/macOS):

export GOROOT=/usr/local/go

GOPATH:工作区目录

GOPATH 是你的工作目录,用于存放 Go 项目源码与依赖。默认路径为 $HOME/go,可自定义。

示例配置:

export GOPATH=$HOME/mygo
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

检查环境配置

使用以下命令验证配置是否生效:

go env GOROOT
go env GOPATH

上述命令将分别输出当前环境中的 GOROOTGOPATH 路径。

3.3 验证安装并测试第一个Go程序

在完成Go语言环境的安装之后,下一步是验证安装是否成功,并运行你的第一个Go程序。

编写测试程序

创建一个名为 hello.go 的文件,输入以下代码:

package main

import "fmt"

func main() {
    fmt.Println("Hello, Go language!")
}

逻辑分析:

  • package main 表示该文件属于主包,可被编译为可执行程序;
  • import "fmt" 导入格式化输出包;
  • func main() 是程序入口函数,必须定义在 main 包中;
  • fmt.Println 用于输出一行文本。

执行与验证

在终端进入文件所在目录,执行以下命令:

go run hello.go

如果输出:

Hello, Go language!

说明你的Go开发环境已配置成功。

第四章:深入配置与开发环境搭建

4.1 使用go mod进行依赖管理

Go 1.11 引入了 go mod,标志着 Go 语言正式支持模块化开发和依赖管理。通过 go mod,开发者可以摆脱 $GOPATH 的限制,实现更灵活、更清晰的项目结构。

初始化模块

使用以下命令初始化一个模块:

go mod init example.com/mymodule

该命令会创建 go.mod 文件,记录模块路径和依赖信息。

常用命令一览

命令 说明
go mod init 初始化新模块
go mod tidy 清理未使用依赖,补全缺失依赖
go mod vendor 将依赖复制到本地 vendor 目录

依赖管理流程

graph TD
    A[编写代码] --> B[导入外部包]
    B --> C[go build 自动下载依赖]
    C --> D[go.mod 更新依赖版本]

通过上述机制,go mod 实现了自动化的依赖拉取与版本控制,提升了项目的可维护性与协作效率。

4.2 安装和配置GoLand开发工具

GoLand 是 JetBrains 推出的专为 Go 语言开发打造的集成开发环境(IDE),提供了代码分析、调试、版本控制等强大功能。

下载与安装

前往 JetBrains 官网下载适用于操作系统的 GoLand 安装包,安装过程根据向导提示逐步完成即可。

初始配置

启动 GoLand 后,首先配置 Go SDK 路径,确保 IDE 能识别 Go 的运行环境。进入 Settings -> Go,设置 GOROOT 和 GOPATH。

插件与主题

GoLand 支持丰富的插件扩展,例如 Go ModulesCode Runner 等,可通过插件市场安装。同时,支持自定义主题,提升开发体验。

合理配置后,即可高效进行 Go 语言开发。

4.3 配置VS Code实现Go语言开发

Visual Studio Code 是目前最受欢迎的轻量级代码编辑器之一,通过合理配置可以快速搭建高效的 Go 语言开发环境。

安装 Go 插件

首先,在 VS Code 中搜索并安装官方推荐的 Go 插件(由 Go 团队维护),该插件集成了代码补全、跳转定义、测试运行等实用功能。

安装必要的 Go 工具

插件安装完成后,VS Code 会提示你安装一些开发辅助工具,如 goplsdlv 等。可以通过以下命令手动安装:

go install golang.org/x/tools/gopls@latest
go install github.com/go-delve/delve/cmd/dlv@latest
  • gopls:Go 语言服务器,支持智能补全和代码重构
  • dlv:调试工具,用于断点调试和运行时分析

配置开发环境

在 VS Code 设置中启用以下关键配置项:

配置项 说明
"go.useLanguageServer": true 启用语言服务器以获得更好的智能提示
"editor.formatOnSave": true 保存时自动格式化代码
"go.formatTool": "goimports" 使用 goimports 替代 gofmt 自动整理导入包

开启调试支持

使用 launch.json 配置调试器:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Launch Package",
      "type": "go",
      "request": "launch",
      "mode": "auto",
      "program": "${fileDir}"
    }
  ]
}

该配置表示:

  • "mode": "auto":自动选择调试模式(推荐)
  • "program": "${fileDir}":指定运行当前文件所在目录的 main 包

配置完成后,即可在 VS Code 中实现代码编辑、运行、调试一体化的 Go 开发体验。

4.4 设置单元测试与调试环境

在开发过程中,良好的单元测试与调试环境是保障代码质量的关键环节。通过合理配置测试框架与调试工具,可以显著提升问题定位效率与代码稳定性。

选择与配置单元测试框架

以 Python 为例,pytest 是广泛使用的测试框架,支持丰富的插件生态。通过以下命令安装:

pip install pytest

在项目根目录下创建 tests/ 文件夹,用于存放所有测试用例。每个测试文件以 test_ 开头,便于自动发现。

配置调试环境

现代 IDE(如 VS Code、PyCharm)均内置调试器,只需在运行配置中设置 "request": "launch" 即可启用断点调试。配合日志输出(如 Python 的 logging 模块),可清晰观察程序运行状态。

测试用例示例

以下是一个简单的测试用例:

def add(a, b):
    return a + b

def test_add():
    assert add(1, 2) == 3
    assert add(-1, 1) == 0

该测试定义了 add 函数,并验证其在不同输入下的行为是否符合预期。每个 assert 表达式代表一个测试断言,一旦失败将立即中断并报告错误。

第五章:后续学习资源与进阶建议

在完成本课程的核心内容之后,下一步是持续深入学习和实践,以提升技术能力并将其应用到真实项目中。以下推荐的学习资源和进阶建议,结合了当前主流技术栈和实战路径,旨在帮助你构建完整的知识体系。

在线学习平台推荐

以下平台提供了大量高质量的IT技术课程,适合不同阶段的学习者:

平台名称 优势领域 推荐理由
Coursera 系统性计算机课程 由知名大学和企业联合授课
Udemy 实战型开发课程 价格亲民,案例丰富
Pluralsight 企业级技术培训 适合中高级开发者
Bilibili 中文技术视频 社区活跃,适合快速入门

建议选择一个平台进行系统学习,并结合笔记和项目练习进行巩固。

开源项目与实战练习

参与开源项目是提升编码能力和工程经验的最佳方式之一。以下是几个推荐的方向和项目资源:

  • GitHub Trending:每天查看热门项目,关注Star数增长较快的开源项目
  • Awesome入门项目:搜索“Awesome 开源项目”类别的精选列表
  • LeetCode + CodeWars:通过算法练习提升编程思维,建议每周至少完成3道中等难度题目

你可以从 Fork 一个小型项目开始,逐步参与 Issue 讨论、提交 Pull Request,熟悉 Git 协作流程。

技术社区与交流渠道

持续参与技术社区可以帮助你了解行业动态、解决实际问题,并建立专业人脉。以下是一些高质量社区资源:

graph TD
    A[Stack Overflow] --> B(问答平台)
    A --> C(C++/Python/前端等专题)
    D[Reddit] --> E(r/learnprogramming)
    D --> F(r/ProgrammerHumor)
    G[国内社区] --> H(CSDN / 掘金 / InfoQ)
    G --> I(Github Discussions)

建议关注你所使用技术栈的官方论坛和核心开发者动态,参与技术直播和线上分享会。

职业发展与方向选择

随着技能的积累,你可以根据兴趣选择以下方向进行深耕:

  • 前端开发:掌握 React/Vue 框架,深入 Web 性能优化和工程化
  • 后端开发:学习微服务架构、分布式系统设计、数据库调优
  • DevOps 工程师:掌握 CI/CD、容器化部署、云平台管理
  • 数据工程/机器学习:结合 Python 和大数据工具链,构建数据驱动系统

每个方向都有对应的认证体系和企业项目实践机会,建议结合自身兴趣选择 1-2 个方向重点突破。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注