Ubuntu 系统上安装和配置 Go 语言运行环境

Ubuntu 系统上安装和配置 Go 语言运行环境


🚀 方法一:使用官方二进制包安装 (推荐)

这是 Go 官方推荐的方法,可以确保您获得最新版本。

步骤 1: 下载 Go 语言安装包

访问 Go 语言官方下载页面,找到适用于 Linux 的最新版本的压缩包(通常是 .tar.gz 文件)。

您可以使用 wget 命令直接下载到您的 Ubuntu 系统:

Bash

复制代码
# 替换版本号为您希望安装的最新版本
GO_VERSION="1.21.5" # 示例版本号
wget https://golang.google.cn/dl/go${GO_VERSION}.linux-amd64.tar.gz

步骤 2: 解压到 /usr/local 目录

将下载的压缩包解压到 /usr/local 目录。这个目录是推荐的安装位置。

Bash

复制代码
# 删除旧的 Go 安装(如果存在)
sudo rm -rf /usr/local/go 

# 解压文件
sudo tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz

步骤 3: 配置环境变量 (GOPATH 和 PATH)

您需要将 Go 的 bin 目录添加到系统的 PATH 环境变量中,这样才能在任何位置运行 Go 命令。

  1. 打开配置文件: 编辑您的用户配置文件(通常是 ~/.bashrc~/.zshrc,取决于您使用的 Shell)。

    Bash

    复制代码
    nano ~/.bashrc
    # 如果您使用 zsh,则改为 nano ~/.zshrc
  2. 添加以下内容: 在文件末尾添加以下两行。GOROOT 是 Go 的安装路径,GOPATH 是您的工作目录(所有 Go 项目和包的存放位置)。

    Bash

    复制代码
    # Go 环境变量配置
    export GOROOT=/usr/local/go
    export GOPATH=$HOME/go
    export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
  3. 保存并应用配置: 保存文件(在 nano 中按 Ctrl+O,然后按 Enter,再按 Ctrl+X)。然后使配置立即生效:

    Bash

    复制代码
    source ~/.bashrc
    # 或 source ~/.zshrc

步骤 4: 验证安装

运行 go versiongo env 命令来检查 Go 是否已正确安装和配置。

Bash

复制代码
go version
# 应该输出类似:go version go1.21.5 linux/amd64

go env
# 检查 GOROOT 和 GOPATH 是否设置正确

🛠️ 方法二:使用 apt 包管理器安装 (快捷但版本可能较旧)

如果您不追求最新版本,或者只是想快速进行测试,可以使用 Ubuntu 的包管理器。

Bash

复制代码
# 更新软件包列表
sudo apt update

# 安装 golang-go 软件包
sudo apt install golang-go

优点: 简单快捷,安装后通常会自动配置好 PATH。

缺点: 仓库中的 Go 版本可能不是最新的。


🧪 步骤 5: 创建和运行第一个 Go 程序

为了测试运行环境是否完全正常,您可以创建一个简单的 "Hello, Go!" 程序。

  1. 创建项目目录:

    Bash

    复制代码
    mkdir -p $GOPATH/src/hello
    cd $GOPATH/src/hello
  2. 创建 Go 源文件 (main.go):

    Bash

    复制代码
    nano main.go

    输入以下内容:

    Go

    复制代码
    package main
    
    import "fmt"
    
    func main() {
        fmt.Println("Hello, Go! 环境配置成功!")
    }
  3. 运行程序:

    Bash

    复制代码
    go run main.go
    # 输出:Hello, Go! 环境配置成功!
  4. 编译程序 (可选):

    Bash

    复制代码
    go build
    # 这将在当前目录下生成一个名为 'hello' 的可执行文件
    ./hello
    # 输出:Hello, Go! 环境配置成功!
相关推荐
linweidong2 小时前
C++ 模块化编程(Modules)在大规模系统中的实践难点?
linux·前端·c++
invicinble6 小时前
对linux形成认识
linux·运维·服务器
小Pawn爷6 小时前
14.VMmare安装ubuntu
linux·运维·ubuntu
半桔6 小时前
【IO多路转接】高并发服务器实战:Reactor 框架与 Epoll 机制的封装与设计逻辑
linux·运维·服务器·c++·io
engchina7 小时前
WSL Ubuntu で Kubernetes v1.34.2 + Docker 環境を構築する
ubuntu·docker·kubernetes
HABuo7 小时前
【linux文件系统】磁盘结构&文件系统详谈
linux·运维·服务器·c语言·c++·ubuntu·centos
Howrun7777 小时前
关于Linux服务器的协作问题
linux·运维·服务器
小白同学_C8 小时前
Lab3-page tables && MIT6.1810操作系统工程【持续更新】
linux·c/c++·操作系统os
十年磨一剑~9 小时前
Linux程序接收到sigpipe信号崩溃处理
linux
geshifei9 小时前
Sched ext回调3——select_cpu(linux 6.15.7)
linux·ebpf