0

0

如何正确安装并本地运行 Go 语言之旅

聖光之護

聖光之護

发布时间:2025-09-17 11:19:01

|

780人浏览过

|

来源于php中文网

原创

如何正确安装并本地运行 go 语言之旅

本教程详细指导用户如何通过 go get 命令安装并本地运行 Go 语言之旅。文章解释了 go get 的工作原理,指明了编译后可执行文件的存放位置 ($GOPATH/bin),并强调了将此路径加入系统 PATH 变量的重要性。同时,教程还解决了旧版 Go Tour 仓库的访问问题,提供了最新的安装方法及环境配置建议,确保用户能顺利开启 Go 学习之旅。

理解 go get 命令的工作原理

go get 是 Go 语言工具链中一个非常实用的命令,它主要用于远程获取、编译并安装 Go 包及其依赖项。当你执行 go get 时,Go 工具链会执行以下步骤:

  1. 获取源码: go get 会根据包路径从版本控制系统(如 Git、Mercurial 等)下载对应的源代码到 $GOPATH/src 目录下。
  2. 编译: 下载完成后,Go 工具链会编译该包及其所有依赖。
  3. 安装: 如果该包包含可执行的 main 函数,编译生成的可执行文件会被安装到 $GOPATH/bin 目录下。对于库文件,则会安装到 $GOPATH/pkg 目录下。

因此,当你在尝试获取并运行 Go 语言之旅(Go Tour)时,预期会有一个名为 gotour(旧版)或 tour(新版)的可执行文件生成并存放在 $GOPATH/bin 路径下。

配置 Go 开发环境

为了确保 go get 能够正常工作,并使系统能够找到安装后的可执行文件,正确配置 GOPATH 和 PATH 环境变量至关重要。

1. 设置 GOPATH 环境变量

GOPATH 是 Go 语言工作区(Workspace)的根目录,它包含了 Go 项目的源代码、编译后的包和可执行文件。推荐将 GOPATH 设置为一个易于访问和管理的目录,例如用户主目录下的 go 文件夹。

# 示例:设置 GOPATH
# 对于 Bash/Zsh 用户
export GOPATH=$HOME/go

# 对于 Fish Shell 用户
set -x GOPATH $HOME/go

注意: 如果你使用的是 Go Modules(Go 1.11+ 默认启用),在项目目录外执行 go get 时,GOPATH 仍然会发挥作用。在项目内部,模块模式会优先使用项目根目录下的 go.mod 定义的依赖。

2. 将 $GOPATH/bin 加入 PATH 环境变量

为了让系统能够直接通过名称调用安装在 $GOPATH/bin 目录下的可执行文件(如 tour 或 gotour),你需要将 $GOPATH/bin 路径添加到系统的 PATH 环境变量中。

# 示例:将 GOPATH/bin 加入 PATH
# 对于 Bash/Zsh 用户
export PATH=$PATH:$GOPATH/bin

# 对于 Fish Shell 用户
set -x PATH $PATH $GOPATH/bin

这些环境变量设置通常需要添加到你的 shell 配置文件中,例如 ~/.bashrc、~/.zshrc 或 ~/.config/fish/config.fish,以便在每次启动 shell 时自动加载。修改后,请记得运行 source ~/.bashrc (或对应的配置文件) 或重启终端使配置生效。

3. 验证环境变量设置

你可以通过 go env 命令来查看当前的 Go 环境变量配置,确保 GOPATH 和 GOBIN(如果设置了)符合预期。

go env

安装 Go 语言之旅

早期的 Go 语言之旅(Go Tour)项目托管在 code.google.com/p/go-tour/gotour。然而,Google Code 服务已于 2016 年关闭,因此尝试通过 go get code.google.com/p/go-tour/gotour 会导致类似 EOF(End Of File)的错误,这通常意味着无法连接到远程仓库或仓库已不存在。

松果AI写作
松果AI写作

专业全能的高效AI写作工具

下载

当前官方推荐的 Go 语言之旅安装方式如下:

go get golang.org/x/website/tour

这个命令会下载 golang.org/x/website 仓库,其中包含了 Go 语言之旅的最新版本。成功执行后,一个名为 tour 的可执行文件将被安装到你的 $GOPATH/bin 目录下。

运行 Go 语言之旅

在确保 $GOPATH/bin 已加入 PATH 环境变量后,你就可以直接在终端中运行 Go 语言之旅了:

tour

如果一切顺利,你将看到类似以下输出:

20XX/XX/XX XX:XX:XX Serving content from /Users/youruser/go/src/golang.org/x/website/tour
20XX/XX/XX XX:XX:XX Open your web browser and visit http://127.0.0.1:3999/

这表明 Go 语言之旅的本地服务器已启动。现在,你只需打开你的网页浏览器,访问 http://127.0.0.1:3999/ 即可开始学习 Go 语言。

如果运行 tour 命令时提示“command not found”,请再次检查你的 PATH 环境变量是否正确配置,并确保 $GOPATH/bin 路径存在且包含 tour 可执行文件。

注意事项与最佳实践

  • GOPATH 的选择: 虽然可以将 GOPATH 设置为任何目录,但为了便于管理和符合 Go 社区的习惯,推荐使用用户主目录下的 go 文件夹(例如 /Users/youruser/go 或 C:\Users\youruser\go)。
  • go get -u 的作用: go get 命令默认只会获取并安装包。如果你想更新一个已经存在的包到最新版本,可以使用 go get -u 命令。
  • Go Modules: 对于 Go 1.11 及更高版本,Go Modules 是官方推荐的依赖管理方式。当你在一个启用了 Go Modules 的项目(即包含 go.mod 文件)中工作时,go get 命令的行为会略有不同,它会将依赖下载到 GOPATH/pkg/mod 缓存中,而不是 $GOPATH/src。不过,安装像 tour 这样的工具时,上述 $GOPATH/bin 的逻辑依然适用。
  • 网络问题 EOF 错误除了仓库失效外,也可能指示临时的网络连接问题。在排除仓库失效的可能性后,检查你的网络连接或尝试使用代理。

总结

通过本教程,你应该已经掌握了如何正确配置 Go 开发环境,以及如何通过 go get 命令安装并本地运行 Go 语言之旅。理解 go get 的工作机制,特别是其安装路径 ($GOPATH/bin),并确保环境变量配置正确,是顺利进行 Go 语言开发的基础。现在,你可以通过本地浏览器访问 Go 语言之旅,开始你的 Go 学习之旅了。

相关专题

更多
golang如何定义变量
golang如何定义变量

golang定义变量的方法:1、声明变量并赋予初始值“var age int =值”;2、声明变量但不赋初始值“var age int”;3、使用短变量声明“age :=值”等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

180

2024.02.23

golang有哪些数据转换方法
golang有哪些数据转换方法

golang数据转换方法:1、类型转换操作符;2、类型断言;3、字符串和数字之间的转换;4、JSON序列化和反序列化;5、使用标准库进行数据转换;6、使用第三方库进行数据转换;7、自定义数据转换函数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

228

2024.02.23

golang常用库有哪些
golang常用库有哪些

golang常用库有:1、标准库;2、字符串处理库;3、网络库;4、加密库;5、压缩库;6、xml和json解析库;7、日期和时间库;8、数据库操作库;9、文件操作库;10、图像处理库。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

340

2024.02.23

golang和python的区别是什么
golang和python的区别是什么

golang和python的区别是:1、golang是一种编译型语言,而python是一种解释型语言;2、golang天生支持并发编程,而python对并发与并行的支持相对较弱等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

209

2024.03.05

golang是免费的吗
golang是免费的吗

golang是免费的。golang是google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的开源编程语言,采用bsd开源协议。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

393

2024.05.21

golang结构体相关大全
golang结构体相关大全

本专题整合了golang结构体相关大全,想了解更多内容,请阅读专题下面的文章。

197

2025.06.09

golang相关判断方法
golang相关判断方法

本专题整合了golang相关判断方法,想了解更详细的相关内容,请阅读下面的文章。

191

2025.06.10

golang数组使用方法
golang数组使用方法

本专题整合了golang数组用法,想了解更多的相关内容,请阅读专题下面的文章。

233

2025.06.17

Golang 性能分析与pprof调优实战
Golang 性能分析与pprof调优实战

本专题系统讲解 Golang 应用的性能分析与调优方法,重点覆盖 pprof 的使用方式,包括 CPU、内存、阻塞与 goroutine 分析,火焰图解读,常见性能瓶颈定位思路,以及在真实项目中进行针对性优化的实践技巧。通过案例讲解,帮助开发者掌握 用数据驱动的方式持续提升 Go 程序性能与稳定性。

1

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Git 教程
Git 教程

共21课时 | 2.9万人学习

Git版本控制工具
Git版本控制工具

共8课时 | 1.5万人学习

Git中文开发手册
Git中文开发手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号