安装 Golang

1. 前言

Go(又称 Golang)是 Google 开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。 罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pike)及肯·汤普逊(Ken Thompson)于 2007 年 9 月开始设计 Go,稍后 Ian Lance Taylor、Russ Cox 加入项目。

Go 是基于 Inferno 操作系统所开发的。Go 于 2009 年 11 月正式宣布推出,成为开放源码项目,并在 Linux 及 Mac OS X 平台上进行了实现,后来追加了 Windows 系统下的实现。在 2016 年,Go 被软件评价公司 TIOBE 选为“TIOBE 2016 年最佳语言”。 目前,Go 每半年发布一个二级版本(即从 a.x 升级到 a.y)

Go 的语法接近 C 语言,但对于变量的声明有所不同。Go 支持垃圾回收功能。Go 的并行模型是以东尼·霍尔的通信顺序进程(CSP)为基础,采取类似模型的其他语言包括 Occam 和 Limbo,但它也具有 Pi 运算的特征,比如通道传输。在 1.8 版本中开放插件(Plugin)的支持,这意味着现在能从 Go 中动态加载部分函数。 与 C++相比,Go 并不包括如枚举、异常处理、继承、泛型、断言、虚函数等功能,但增加了 切片(Slice) 型、并发、管道、垃圾回收、接口(Interface)等特性的语言级支持。Go 2.0 版本将支持泛型,对于断言的存在,则持负面态度,同时也为自己不提供类型继承来辩护。 不同于 Java,Go 内嵌了关联数组(也称为哈希表(Hashes)或字典(Dictionaries)),就像字符串类型一样。

2. 安装和设置

Go 语言环境安装 Go 的三种安装方式: Go 有多种安装方式,你可以选择自己喜欢的。
这里我们介绍三种最常见的安装方式:

  1. Go 源码安装:这是一种标准的软件安装方式。对于经常使用类 Unix 系统的用户,尤其对于开发者来说,从源码安装可以自己定制。

  2. Go 标准包安装:Go 提供了方便的安装包,支持 Windows、Linux、Mac 等系统。这种方式适合快速安装,可根据自己的系统架构下载好相应的安装包,一路 next 就可以轻松安装了。推荐这种方式.

  3. 第三方工具安装:目前有很多方便的第三方软件包工具,例如 Ubuntu 的 apt-get 和 wget、Mac 的 homebrew 等。这种安装方式适合那些熟悉相应系统的用户。 最后,如果你想在同一个系统中安装多个版本的 Go,你可以参考第三方工具 GVM,这是目前在这方面做得最好的工具,除非你知道怎么处理。

Go 语言支持以下系统: Linux、 FreeBSD、 Mac OS X(也称为 Darwin)、 Windows。

安装包下载地址为:https://go.dev/dl/ 如果打不开可以使用这个地址:https://golang.google.cn/dl/

各个系统对应的包名:

操作系统包名
Windowsgo1.xx.x.windows-amd64.zip
Linuxgo1.xx.x.linux-amd64.tar.gz
Macgo1.xx.x.darwin-amd64-osxxx.x.pkg
FreeBSDgo1.xx.x.freebsd-amd64.tar.gz

2.1. 在 UNIX/Linux/Mac OS X, 以及 FreeBSD 系统下使用标准包安装 golang

本文主要介绍使用 Go 标准包安装安装方式,这种安装方式相较于源码安装简单,相较于第三方工具安装又较为通用。

  1. Go 标准包安装:以 go1.21.10.linux-amd64.tar.gz 为例。

    1
    wget -O /tmp/go1.21.10.linux-amd64.tar.gz https://golang.google.cn/dl/go1.21.10.linux-amd64.tar.gz
  2. 将下载的二进制包解压至 /usr/local 目录
    将之前的版本删除掉, 并安装新版本

    1
    2
    3
    4
    # 删除旧版本
    sudo rm -rf /usr/local/go
    # 安装新版本
    sudo tar -C /usr/local -xzf /tmp/go1.21.10.linux-amd64.tar.gz
  3. 将 /usr/local/go/bin 目录添加至 PATH 环境变量

1
2
3
4

echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
source ~/.bashrc

  1. 验证安装是否成功
1
2
$go version
go version go1.21.10 linux/amd64

2.2. Windows 系统下安装

Windows 下可以使用 .zip 后缀(在下载列表中可以找到该文件,如 go1.21.10.windows-amd64.zip)的安装包来安装。

建议安装在 c:\program files\Go 目录下。你可以将 c:\program files\Go\bin 目录添加到 PATH 环境变量中。添加后你需要重启命令窗口才能生效。

Windows 安装包下载地址为:https://go.dev/dl/ 如果打不开可以使用这个地址:https://golang.google.cn/dl/

2.3. 配置环境变量

Go 提供了每个平台打好包的一键安装,这些包默认会安装到如下目录:/usr/local/go (Windows 系统:c:\program files\Go),当然你可以改变他们的安装位置,但是改变之后你必须在你的环境变量中设置如下信息

vi ~/.bashrc.d/golang.sh

1
2
3
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

上面这些命令对于 Mac 和 Unix 用户来说最好是写入.bashrc 或者.zshrc 文件,对于 windows 用户来说当然是写入环境变量。

2.3.1. 设置 GO111MODULE

可以用环境变量 GO111MODULE 开启或关闭模块支持,它有三个可选值:off、on、auto,默认值是 auto。 GO111MODULE=off 无模块支持,go 会从 GOPATH 和 vendor 文件夹寻找包。 GO111MODULE=on 模块支持,go 会忽略 GOPATH 和 vendor 文件夹,只根据 go.mod 下载依赖。 GO111MODULE=auto (推荐) 此设置兼容旧的 GOPATH mode 依赖管理方式和新的 go module 管理方式, 在 $GOPATH/src 外面且根目录有 go.mod 文件时,开启模块支持。 在使用模块的时候,GOPATH 是无意义的,不过它还是会把下载的依赖储存在 $GOPATH/pkg/mod 中,也会把 go install 的结果放在 $GOPATH/bin 中。

2.3.2. 设置 GOPROXY

windows 设置环境变量: 如果不设置 proxy 有些依赖包由于众所周知的原因下载不了,
所以建议安装 go 以后配置 GOPROXY 环境变量,一来可解决依赖问题 再者下载依赖包的速度有所提升

1
2
3
4
# windows add a env varialble
GOPROXY="https://mirrors.aliyun.com/goproxy/"
# linux:
export GOPROXY=https://mirrors.aliyun.com/goproxy/

其他 go proxies: https://goproxy.io china https://goproxy.cn

关闭 GOSUMDB go env -w GOSUMDB=off

3. 问题排查

当出现以下错误时

1
2
3
4
$go build
# github.com/mattn/go-sqlite3
cgo: C compiler "gcc" not found: exec: "gcc": executable file not found in %PATH%

需要先安装 gcc, 并将其可执行文件路径添加到 path 环境变量.

安装方法

  1. 下载基础程序​ 并进行安装
  2. 选择 MinGW-W64 Online Installer 并下载
  3. 双击安装程序, 当弹出 settings 界面时, 选择 x86_64, 其它保持默认选项.

4. 参考文档

常见问题之 Golang——cgo: C compiler

作者

鹏叔

发布于

2022-04-22

更新于

2025-11-07

许可协议

评论