- 文档
- 教程
【免费下载链接】build-web-application-with-golang
A golang ebook intro how to build a web with golang
导读
本文是开源教程《Build Web Application with Golang》波斯语版(fa 目录)第 1 章"Go 环境配置"(fa/01.0.md、fa/01.1.md)的完整技术指南。它以 Go 语言的特性为起点,系统讲解在 Linux、macOS、Windows 上通过源码编译、官方标准安装包和第三方工具(GVM、apt-get、wget、Homebrew)三种途径搭建 Go 开发环境的全部细节,并给出GOROOT、GOBIN、PATH、GOPATH等关键环境变量的配置规范与安装验证方法。读完本文,你将能独立完成任一平台的 Go 环境搭建,并通过"输入go看到 Usage 信息"这一标准手段确认安装成功,为后续章节编写 Web 应用打下基础。
Go 语言特性:为什么第一章要先讲环境
本章开篇先回答了"为什么值得安装 Go":Go 是一门编译型、带垃圾回收(GC)、原生支持并发的系统编程语言,兼具解释型/动态语言的高开发效率与静态语言的安全性。原文档列举的核心优势包括:
- 编译速度快:一个大型项目只需数秒即可完成编译;
- 依赖管理简化:提供易于推理的软件开发模型,规避了 C 风格头文件带来的大量问题;
- 类型系统简洁:静态类型语言,类型系统不分层级,无需花时间理清类型间的关系,更像一门轻量级面向对象语言;
- 内置 GC 与并发原语:自带垃圾回收,并对并发与通信提供基础支持;
- 面向多核设计:专门针对现代多核计算机设计,在网络编程场景中同样适用。
原文档特别强调:像"富有表达力的轻量级类型系统、原生并发模型、严格调校的垃圾回收器"这类问题,本质上必须在语言设计层面解决,正因长期没有工具能务实解决全部问题,Go 语言才应运而生。理解了这些背景,就能明白后续章节为何大量使用goroutine、channel等并发特性来构建 Web 服务。
三种安装方式总览
配置 Go 开发环境有多种途径,原文档将最常见的方式归纳为三类,你完全可以根据自己的系统与习惯任选其一:
| 安装方式 | 适用场景 | 特点 |
|---|---|---|
| 官方标准安装包 | Windows / Linux / macOS 全平台 | 一键式安装,最简单,适合快速上手 |
| 源码编译安装 | 熟悉类 Unix 系统的开发者 | 可自定义安装路径与编译选项 |
| 第三方工具安装 | Ubuntu(apt-get / wget)、macOS(Homebrew)等 | 与系统包管理器集成,方便升级 |
此外,如果你需要在同一台机器上同时维护多个 Go 版本,原文档推荐使用 GVM(Go Version Manager,类比 Ruby 的 rvm),否则就只能自己手工管理多套环境。
从源码编译安装 Go
先决条件:取决于目标 Go 版本
源码安装的依赖与 Go 版本强相关,这是新手最容易踩坑的地方:
- 编译 Go 1.5 及以上版本:只需机器上已有任意一个旧版本 Go,因为 Go 已实现自举(bootstrapping)——"编译 Go 需要 Go 本身";
- 编译 Go 1.4 及以下版本:必须准备 C 编译器,因为当时部分代码仍用 Plan 9 C 和 AT&T 汇编编写;
- macOS:安装了 Xcode 即自带所需编译器;
- 类 Unix 系统:需安装 gcc 或同类编译器,Ubuntu 可用 apt-get 安装:
sudo apt-get install gcc libc6-dev - Windows:需先安装 MinGW 获取 gcc,完成后记得配置环境变量(64 位 Windows 必须安装 64 位版 MinGW)。
克隆源码并编译
准备好工具链后,在原文档建议的干净工作目录(克隆会把源码放进当前目录)执行:
git clone https://go.googlesource.com/go cd go/src ./all.bash- 类 Unix 系统运行
./all.bash,Windows 运行all.bat(调用 MinGW 的 gcc); - 编译过程可能耗时较长;
- 成功标志是输出
ALL TESTS PASSED.。
源码安装后的环境变量
Windows 的安装包会自动配置环境变量;类 Unix 系统则需要手动设置(注意:Go 1.0 之后无需再显式设置$GOBIN,它会自动关联到$GOROOT/bin,下一节还会详细讨论):
export GOROOT=$HOME/go export GOBIN=$GOROOT/bin export PATH=$PATH:$GOROOT/bin验证安装成功
在终端输入go,若看到类似下图的 Go 工具 Usage 信息(Go is a tool for managing Go source code.及 build、clean、doc、env、fmt、get、install、run、test、vet 等完整命令列表),即表示安装成功;若提示 "no such command",说明$PATH中未包含 Go 的安装路径。
使用官方标准安装包(推荐)
Go 为所有受支持系统提供一键式安装包,默认安装到/usr/local/go(Windows 为c:\Go)。路径可改,但改动后必须同步手动修改环境变量。安装包会自动完成大部分环境变量配置,这也是官方推荐新手使用的方案。
第一步:确认系统位数(32 位 / 64 位)
下载前必须先确认系统架构,三种平台分别如下:
- Windows:按
Win+R打开运行框,执行systeminfo,在输出中查找 "system type" 行——显示 "x64-based PC" 即为 64 位系统,否则为 32 位; - macOS:建议直接选用 64 位包,因为 Go 已停止支持 Mac 上的纯 32 位处理器;
- Linux:终端执行
uname -a:- 64 位系统输出类似
<some description> x86_64 x86_64 x86_64 GNU/Linux(部分发行版如 Ubuntu 10.04 简化为x86_64 GNU/Linux); - 32 位系统输出类似
<some description> i686 i686 i386 GNU/Linux。
- 64 位系统输出类似
macOS 安装
前往 Go 官方下载页面,按架构选择安装包:
- 32 位系统:
go1.4.2.darwin-386.pkg(此后版本已不再提供 32 位包); - 64 位系统:
go1.8.3.darwin-amd64.pkg。
双击 pkg 一路点击 "next" 完成安装,~/go/bin会被自动加入$PATH。打开终端输入go,即可看到前述 Usage 输出。
Linux 安装
从下载页选择go1.8.3.linux-386.tar.gz(32 位)或go1.8.3.linux-amd64.tar.gz(64 位)。假设目标安装目录为$GO_INSTALL_DIR:
tar zxvf go1.8.3.linux-amd64.tar.gz -C $GO_INSTALL_DIR export PATH=$PATH:$GO_INSTALL_DIR/go/bin然后打开终端输入go验证。
Windows 安装
从下载页选择go1.8.3.windows-386.msi(32 位)或go1.8.3.windows-amd64.msi(64 位)。一路点击 "next" 安装,完成后c:/go/bin会被自动加入Path。打开命令行窗口输入go验证即可。
使用第三方工具安装
GVM:Go 多版本管理
GVM 是第三方开发的 Go 多版本控制工具(类似 Ruby 的 rvm),特别适合需要在同一台机器维护多个 Go 版本的用户。安装与使用:
bash < <(curl -s -S -L https://raw.github.com/moovweb/gvm/master/binscripts/gvm-installer)然后安装并切换到指定版本:
gvm install go1.8.3 gvm use go1.8.3安装完成后即全部就绪。
apt-get:Ubuntu 包管理器
Ubuntu 是最流行的 Linux 桌面发行版之一,使用apt-get管理软件包,安装 Go 只需:
sudo add-apt-repository ppa:gophers/go sudo apt-get update sudo apt-get install golang-gowget:手动下载解压
适合不便使用 PPA 的场景,从官方存储下载 tar.gz 后解压到/usr/local并配置环境:
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 environment export GOROOT=/usr/local/go export GOBIN=$GOROOT/bin export PATH=$PATH:$GOBIN export GOPATH=$HOME/gopathHomebrew:macOS 包管理器
macOS 用户常用 Homebrew 管理软件包,分两步安装:
- 安装 Homebrew:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" - 安装 Go:
brew update && brew upgrade brew install go
环境变量要点与 GOPATH 默认值
无论采用哪种方式,环境变量都是安装后的关键一环,原文档给出了如下要点:
GOROOT:Go 语言的安装根目录,用于定位 Go 工具链与标准库;GOBIN:编译产出的可执行文件目录;Go 1.0 之后无需手动设置,自动关联$GOROOT/bin;PATH:必须包含 Go 的 bin 目录,否则输入go会得到 "no such command";GOPATH:Go 代码工作区目录,存放所有 Go 源码。从 Go 1.8 起,若未设置 GOPATH 则有默认值:类 Unix 系统默认$HOME/go,Windows 默认%USERPROFILE%/go。这也是后续章节(如英文版 en/01.2.md 的$GOPATH与工作空间详解)将展开的主题。
仓库配套代码:验证工作区是否就绪
环境搭建完成后,可以立即用仓库提供的配套代码做一次真实验证。fa 目录下的示例代码对应本书各章节:fa/code/src/apps/ch.1.2/main.go 用于第 1.2 节"工作空间配置"的自检,其注释明确说明:在该目录下执行go run main.go,若看到 "Hello World" 输出即说明工作区配置正确:
// Example code for Chapter 1.2 from "Build Web Application with Golang" // Purpose: Run this file to check if your workspace is setup correctly. // To run, navigate to the current directory in a console and type `go run main.go` // If the text "Hello World" isn't shown, then setup your workspace again. package main import ( "fmt" "mymath" ) func main() { fmt.Printf("Hello, world. Sqrt(2) = %v\n", mymath.Sqrt(2)) }它依赖的自定义包 fa/code/src/mymath/sqrt.go 用牛顿迭代实现了Sqrt函数,展示了GOPATH/src下按包名组织目录的标准做法。只有当GOPATH、PATH等环境变量配置无误、mymath包可被正确导入时,该程序才能编译并打印 "Hello, world. Sqrt(2) = 1.414214"。
继续学习
- 目录(全书章节总览)
- 下一节:安装(本文主体对应的完整安装章节原文)
- 英文版对应章节:en/01.0.md 与 en/01.1.md
说明:文中涉及的 Go 版本号(如 1.8.3、1.4.2)与安装路径均以仓库文档撰写年代的实际情况为准,若使用更新的 Go 版本,请以官方下载页提供的当前版本号替换,环境变量配置方式保持不变。
- 文档
- 教程
【免费下载链接】build-web-application-with-golang
A golang ebook intro how to build a web with golang
相关推荐
搭建 Go 开发环境:源码编译、官方安装包与第三方工具三条路线详解(Build Web Application with Golang 第 1.1 节)
搭建 Go 开发环境:源码编译、官方安装包与第三方工具三条路线详解(Build Web Application with Golang 第 1.1 节) 本篇技
文档教程在 Mac、Linux 与 Windows 上安装 Go 开发环境:三种安装方式全指南(build-web-application-with-golang 第 1.1 节)
在 Mac、Linux 与 Windows 上安装 Go 开发环境:三种安装方式全指南(build web application with golang 第
文档教程Go 环境配置实战:安装、验证与工作区搭建——以《build-web-application-with-golang》第 1 章为例
Go 环境配置实战:安装、验证与工作区搭建——以《build web application with golang》第 1 章为例 本文以开源仓库 build
文档教程
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考