news 2026/10/4 6:43:41

build-web-application-with-golang 第 1.1 节精讲:Go 的三种安装方式与开发环境搭建

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
build-web-application-with-golang 第 1.1 节精讲:Go 的三种安装方式与开发环境搭建
  • 文档
  • 教程

【免费下载链接】build-web-application-with-golang

A golang ebook intro how to build a web with golang

项目地址:https://gitcode.com/gh_mirrors/bu/build-web-application-with-golang
点击查看免费下载

本文以开源书籍《build-web-application-with-golang》波斯语版第 1.1 节(fa/01.1.md)为核心骨架,系统讲解 Go 开发环境的三种搭建路径:官方标准安装包、源码编译安装、第三方工具安装,并覆盖 32/64 位系统判断、环境变量(GOROOT / GOBIN / PATH / GOPATH)配置与安装成功后的验证方法。读完本文,你可以根据自身操作系统与使用习惯,独立完成一套可用的 Go 开发环境搭建,并能够自主排查"命令不存在"这类最常见安装故障。

一、三种安装方式总览

Go 提供了多种安装途径,可以按自己的习惯任选其一。本书第 1.1 节归纳出最常用的三种:

安装方式适用人群特点
官方标准安装包大多数初学者官方为 Windows、Linux、macOS 等提供打包好的安装包,下载对应系统位数的包后一路点击"下一步"即可完成
源码安装熟悉 Unix 类系统的开发者标准的软件源码安装方式,可从源码层面定制,也是理解 Go 工具链自举过程的最佳途径
第三方工具安装熟悉各系统包管理器的用户借助 Ubuntu 的apt-get/wget、macOS 的 Homebrew、跨平台的 GVM 等工具安装

另外,若需要在同一台机器上安装多个版本的 Go,文档推荐使用第三方工具 GVM(GitHub 上的 moovweb/gvm 项目,原文档引用),它是管理 Go 多版本最成熟的方案之一;若不想依赖该工具,也可以手动管理各版本。

二、方式一:从源码安装 Go

1. 编译前置条件:自举与 C 编译器

从源码编译 Go 对前置工具链的要求与 Go 版本强相关,本节给出了明确的分界:

  • Go 1.5 及以上:Go 实现了自举(bootstrapping),即"编译 Go 需要 Go 本身"。因此系统上只需预先装好任一旧版本 Go,即可用它编译新版本。
  • Go 1.4 及以下:工具链中仍有部分代码以 Plan 9 C 与 AT&T 汇编编写,因此必须额外准备一套 C 编译器。

各平台 C 编译器的准备方式:

  • macOS:只要安装了 Xcode,就已包含所需编译工具。
  • 类 Unix 系统:需安装gcc或同类编译器,例如 Ubuntu 下执行:
sudo apt-get install gcc libc6-dev
  • Windows:先安装 MinGW,再通过 MinGW 安装gcc,并记得在安装完成后配置环境变量。若使用 64 位 Windows,务必安装 64 位版本的 MinGW(这是原文特意加粗强调的注意点)。

2. 克隆源码并编译

进入希望存放源码的工作目录后(原文提醒:git clone会将源码克隆到当前目录,请先切换好工作路径,且整个编译过程会比较耗时),依次执行:

git clone https://go.googlesource.com/go cd go/src ./all.bash
  • Unix 风格系统执行all.bash;Windows 下执行等效的all.bat,其底层调用的是 MinGW 自带的gcc。
  • 编译脚本会同时运行工具链构建与全量测试,只有看到ALL TESTS PASSED.字样才算安装成功,它代表所有测试均已通过。

3. 配置环境变量

Windows 的安装包会自动完成环境变量配置;而 Unix 类系统需要手动设置。若 Go 版本大于 1.0,则无需手动设置$GOBIN,它会自动与$GOROOT/bin关联(本书下一节会深入讨论):

export GOROOT=$HOME/go export GOBIN=$GOROOT/bin export PATH=$PATH:$GOROOT/bin

为了让配置在每次登录时自动生效,建议将这些行追加到~/.bashrc或~/.zshrc(Windows 用户则写入系统环境变量)。

4. 验证安装是否成功

配置完成后,在终端输入go。若屏幕输出 Go 命令的 Usage(用法)信息,说明安装成功;若提示no such command("命令不存在"),则应检查$PATH是否包含 Go 的安装目录。下图即本书源码安装成功后执行go命令的典型输出(macOS 终端):

这一验证方法在后续所有安装方式中通用——只要go命令能打印出 Usage 信息,就代表工具链已经就绪。

三、方式二:官方标准安装包

Go 官方为所有受支持的操作系统提供一键安装包,默认安装目录为:

  • Unix 类系统:/usr/local/go
  • Windows:c:\Go

安装目录可以自定义,但改动后必须同步手动修改环境变量,否则go命令无法被找到。

1. 先判断系统是 32 位还是 64 位

下载前必须先确认系统位数,三个平台各有方法:

  • Windows:按Win+R打开运行框,执行cmd进入命令行,输入systeminfo,在输出中找到"系统类型"一行——显示x64-based PC即为 64 位系统,否则为 32 位。
  • macOS:Go 已不再支持 Mac 上的纯 32 位处理器,因此官方建议一律下载 64 位安装包。
  • Linux:终端执行uname -a查看内核信息。64 位系统输出类似:
<描述信息> x86_64 x86_64 x86_64 GNU/Linux // 部分发行版(如 Ubuntu 10.04)输出为 x86_64 GNU/Linux

32 位系统输出类似:

<描述信息> i686 i686 i386 GNU/Linux

2. macOS:pkg 安装包

前往 Golang 官方下载页(原文档引用):

  • 64 位系统下载go1.8.3.darwin-amd64.pkg(本书写作时的版本示例);
  • 32 位系统下载go1.4.2.darwin-386.pkg(后续版本已不再提供 32 位包)。

双击安装包,一路点击"next"完成安装。安装成功后~/go/bin会被自动加入系统$PATH,打开终端输入go即可看到与上文图 1.1 相同的 Usage 输出。

3. Linux:tar.gz 解压安装

同样前往官方下载页:

  • 64 位系统下载go1.8.3.linux-amd64.tar.gz;
  • 32 位系统下载go1.8.3.linux-386.tar.gz。

假设期望的安装目录为$GO_INSTALL_DIR,解压并配置 PATH:

tar zxvf go1.8.3.linux-amd64.tar.gz -C $GO_INSTALL_DIR export PATH=$PATH:$GO_INSTALL_DIR/go/bin

之后在终端输入go,输出应如图 1.1 所示。Linux 下安装成功后的实际终端输出参见下图(本书中文版 1.1 节中的对应截图):

4. Windows:MSI 安装包

  • 64 位系统选择名称含windows-amd64的包(如go1.8.3.windows-amd64.msi);
  • 32 位系统选择名称含windows-386的包(如go1.8.3.windows-386.msi)。

运行 MSI 安装程序,一路点击"next"。安装完成后c:/go/bin会被自动追加到path环境变量。打开命令行窗口输入go,若能看到 Usage 信息即表示安装成功。若提示命令不存在,请检查path中是否包含c:/go/bin。

四、方式三:第三方工具安装

1. GVM:Go 多版本管理(类 rvm)

GVM(Go Version Manager)是第三方开发的 Go 多版本管理工具,用法类似 Ruby 生态的 rvm。先安装 gvm:

bash < <(curl -s -S -L https://raw.github.com/moovweb/gvm/master/binscripts/gvm-installer)

再安装并切换到指定 Go 版本:

gvm install go1.8.3 gvm use go1.8.3

执行完成后,GOPATH、GOROOT等环境变量会被 gvm 自动设置好,即可直接使用。如果你希望某版本成为默认版本、免去每次手动gvm use,可以使用gvm use go1.8.3 --default。这正是本章开头提到的"在同一台机器上维护多个 Go 版本"的最佳实践。

2. apt-get:Ubuntu 包管理器

Ubuntu 是最流行的 Linux 桌面发行版之一,使用apt-get管理软件包,可通过如下命令安装 Go:

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

3. wget:手动下载解压

不依赖 PPA 时,可以用wget直接拉取官方 tar.gz 包:

wget https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz sudo tar -xzf go1.8.3.linux-amd64.tar.gz -C /usr/local # Go 环境变量 export GOROOT=/usr/local/go export GOBIN=$GOROOT/bin export PATH=$PATH:$GOBIN export GOPATH=$HOME/gopath

第 1.1 节特别指出:从 Go 1.8 开始,GOPATH环境变量有了默认值——当它未被显式设置时,Unix 类系统默认为$HOME/go,Windows 默认为%USERPROFILE%/go。这一默认行为大大降低了新手配置门槛,也使上述export GOPATH=...变为可选项。

4. Homebrew:macOS 包管理器

Homebrew 是 macOS 上最常用的软件包管理工具,分两步安装 Go:

  1. 安装 Homebrew:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  1. 更新并安装 Go:
brew update && brew upgrade brew install go

五、关于版本号与后续章节的衔接说明

需要说明的是,本文中的具体版本号(如go1.8.3、go1.4.2)取自本书写作年代(Go 1.8 时代)的实际示例,用于演示完整的下载、解压与命名规律。实际安装时请以 Golang 官方下载页(原文档引用)当前提供的最新版本为准,文件名命名规则保持一致(如goX.Y.Z.linux-amd64.tar.gz)。

本章在第 1.1 节之后的进阶内容还包括:

  • 上一节 fa/01.0.md:Go 语言特性概览与环境配置总览;
  • 目录总览见 fa/preface.md,全书 14 章覆盖了从 Go 基础语法、Web 基础、表单与数据库,到自研 Web 框架(第 13、14 章)的完整进阶路线;
  • 下一节"$GOPATH 与工作空间"将深入讲解工作区目录结构,以及 Go 1.8 之后GOPATH默认值、Go Module 等新机制(可对照 中文版同章节 与 英文版同章节 阅读)。

六、常见问题与排查

将第 1.1 节中零散的注意点汇总为排查清单,便于实战对照:

  1. 出现no such command/ 命令不存在:优先检查$PATH(Windows 为path)是否包含 Go 安装目录下的bin目录,例如$GOROOT/bin、/usr/local/go/bin或c:/Go/bin。
  2. 自定义安装目录后失效:官方包默认装在/usr/local/go(Windows 为c:\Go),一旦改到其他路径,必须同步手动更新环境变量,否则工具链无法被定位。
  3. Windows 源码编译失败:确认安装的是与系统位数一致的 MinGW(64 位 Windows 必须装 64 位 MinGW),并已完成环境变量配置。
  4. 源码安装始终不成功:编译结束标志必须是ALL TESTS PASSED.,在此之前请检查 gcc 等前置编译器是否就绪。
  5. 多版本切换需求:优先使用 GVM 管理,避免手工维护多个 GOROOT 造成的混乱。

相关章节链接

  • 章节目录:fa/preface.md
  • 上一节:Go 环境配置
  • 对照阅读:中文版 1.1 安装、英文版 1.1 Installation
  • 附录资源:fa/ref.md
  • 文档
  • 教程

【免费下载链接】build-web-application-with-golang

A golang ebook intro how to build a web with golang

项目地址:https://gitcode.com/gh_mirrors/bu/build-web-application-with-golang
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/4 6:43:33

B2B战略咨询双赛道全攻略:从机会识别到落地避坑

这两年做B2B战略咨询的朋友聚在一起&#xff0c;聊得最多的一个词就是“双赛道”。过去那种靠单一行业、单一模式吃三年的好日子基本到头了&#xff0c;客户预算收紧、决策周期拉长、项目复购率下降&#xff0c;很多同行都在找新的增长曲线。我自己操盘过几个跨赛道的战略咨询项…

作者头像 李华
网站建设 2026/10/4 6:43:26

等时替代模型:用时间置换思维重构健康行为分析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/4 6:42:25

OPNET局域网仿真工程LANs.zip实战:从交换式以太网到VLAN与LEACH迁移

简介&#xff1a;这是一份面向网络仿真初学者与无线传感器网络研究者的OPNET建模实践资源&#xff0c;围绕局域网&#xff08;LAN&#xff09;场景与LEACH低能耗自适应聚类路由算法展开&#xff0c;适合用于课程实验、协议性能对比与能耗优化分析。压缩包共46个文件&#xff0c…

作者头像 李华
网站建设 2026/10/4 6:41:59

微信小程序旅游服务平台全栈开发实战:架构设计与接口调试

我接手过不少校园项目、毕设和外包单子&#xff0c;这类“基于微信小程序的旅游服务平台”算是需求量很大的一个方向。它不只是一个毕设题目&#xff0c;放到真实产线上&#xff0c;它对应的是本地景区的线上服务入口、民宿酒店的预订渠道、旅游攻略的内容社区。这个项目标题里…

作者头像 李华
网站建设 2026/10/4 6:41:12

Claude Code桌面版接入第三方模型API完整指南:环境变量配置与多模型切换

1. 为什么我要折腾 Claude Code 桌面版接第三方模型Claude Code 刚出来那阵子&#xff0c;我身边不少朋友第一反应是“这不就是个终端里的 AI 编程助手吗”&#xff0c;结果真上手之后发现&#xff0c;它在代码库理解、跨文件重构、终端命令执行这几块确实有两把刷子。问题也很…

作者头像 李华
网站建设 2026/10/4 6:41:10

Java连接OPC Server报Access is denied?DCOM权限配置与排查指南

搞Java的人第一次去连OPC Server&#xff0c;十有八九会撞上这个异常&#xff1a;org.jinterop.dcom.common.JIException: Access is denied它出现的时机通常都在创建DCOM会话、调用CoCreateInstanceEx 那一步&#xff0c;也就是程序刚尝试连接远程OPC Server&#xff0c;或者还…

作者头像 李华