goenv && go 环境配置

Golang环境配置

1. goenv工具

goenv 是一个用于管理 Go 语言版本的工具,类似于 Python 的 pyenv 或 Ruby 的 rbenv。不过需要注意的是,goenv 并不是一个官方维护的工具,而是一个社区项目。Go 语言本身已经提供了很好的版本管理工具(通过 GOROOTGOPATH 变量,以及 Go Modules),但在某些场景下,使用 goenv 可以更方便地切换和管理多个 Go 版本。

1.1 安装

shell 复制代码
git clone https://github.com/syndbg/goenv.git ~/.goenv
cd ~/.goenv && src/configure

1.2 配置

shell 复制代码
export PATH="$HOME/.goenv/bin:$PATH"
# 配置GOROOT可以决定goenv下载go版本的路径
export GOROOT = "$HOME/go_sdk" 
shell 复制代码
source ~/.bashrc  # 或者 source ~/.zshrc

1.3 常用指令

shell 复制代码
# 安装指定版本
goenv install <version> <path-to-go-installation>

# 卸载指定版本
goenv uninstall <version>

# 列出已经安装的所有版本
goenv versions

# 列出goenv的版本
goenv version

# 设置全局go版本
goenv global <version>

# 设置项目本地go版本
goenv local <version>

2. go常用命令

  1. go build

    • 功能:编译 Go 程序。
    • 用法:在包的编译过程中,若有必要,会同时编译与之相关联的包。如果是普通包,执行 go build 命令后不会产生任何文件;如果是 main 包,执行 go build 命令后会在当前目录下生成一个可执行文件。
    • 示例:go buildgo build -o myapp.exe(指定输出文件名)。
  2. go clean

    • 功能:移除当前源码包里面编译生成的文件。
    • 用法:会删除旧的 object 目录、test 目录、gotest 文件、test 记录等编译生成的文件。
    • 示例:go clean
  3. go fmt

    • 功能:格式化 Go 代码文件。
    • 用法:通常开发工具会带有保存时自动格式化功能,该功能底层调用了 go fmt 命令。也可以使用 gofmt 命令并加上 -w 参数来格式化整个项目。
    • 示例:gofmt -w src
  4. go get

    • 功能:动态获取远程代码包。
    • 用法:支持 BitBucket、GitHub、Google Code 和 Launchpad 等平台。该命令在内部实际上分成了两步操作:第一步是下载源码包,第二步是执行 go install
    • 示例:go get github.com/user/repo
  5. go install

    • 功能:编译并安装包和依赖。
    • 用法:生成结果文件(可执行文件或者 .a 包),并将编译好的结果移到 GOPATH/pkgGOPATH/bin
    • 示例:go install
  6. go test

    • 功能:自动读取源码目录下面名为 *_test.go 的文件,生成并运行测试用的可执行文件。
    • 用法:默认不需要任何参数,会自动测试源码包下面所有测试文件。也可以带上参数,详情参考 go help testflag
    • 示例:go test
  7. go doc

    • 功能:查看 Go 包的文档。
    • 用法:通过命令行查看相应包的文档,例如 go doc builtin 查看内置包的文档,go doc net/http 查看 net/http 包的文档。
    • 示例:go doc fmt Printf(查看某个包里面的函数)。
  8. go fix

    • 功能:修复以前老版本的代码到新版本。
    • 用法:例如将 go1 之前老版本的代码转化到 go1。
    • 示例:go fix ./...(修复当前目录及其子目录中的所有 Go 文件)。
  9. go version

    • 功能:查看 Go 当前的版本。
    • 用法:直接运行 go version 即可。
    • 示例:go version
  10. go list

    • 功能:列出当前全部安装的 package。
    • 用法:直接运行 go list 即可。
    • 示例:go list
  11. go run

    • 功能:编译并运行 Go 程序。
    • 用法:直接运行 go run,后面跟上要运行的 Go 文件名。
    • 示例:go run main.go
  12. go env

    • 功能:打印 Go 的环境信息。
    • 用法:直接运行 go env 即可查看 Go 的环境变量等信息。
    • 示例:go env
  13. go generate

    • 功能:从处理源代码生成 Go 文件。
    • 用法:通常用于在编译前自动生成一些代码文件。
    • 示例:在源代码文件中添加 //go:generate 指令,然后运行 go generate
  14. go tool

    • 功能:运行 Go 提供的工具。
    • 用法:Go 提供了一系列工具,如 vetfix 等,可以通过 go tool 命令运行。
    • 示例:go tool vet ./...(对当前目录及其子目录中的所有 Go 文件进行 vet 检查)。
  15. go mod

    (Go 1.11+ 版本)

    • 功能:Go 语言的模块支持,用于管理项目依赖。
    • 用法:提供了 inittidyverifygraph 等子命令,用于初始化模块、整理依赖、验证依赖等。
    • 示例:go mod init example.com/mymodule(初始化模块)。
相关推荐
数据小爬虫@8 分钟前
Python爬虫:如何优雅地“偷窥”商品详情
开发语言·爬虫·python
CV大法好10 分钟前
刘铁猛p3 C# 控制台程序引用System.Windows.Forms报错,无法引用程序集 解决方法
开发语言·c#
Days205021 分钟前
uniapp小程序增加加载功能
开发语言·前端·javascript
朱小勇本勇1 小时前
Qt实现控件拖曳
开发语言·数据库·qt
customer081 小时前
【开源免费】基于SpringBoot+Vue.JS加油站管理系统(JAVA毕业设计)
java·vue.js·spring boot·后端·spring cloud·java-ee·maven
片片叶1 小时前
C++(十四)
开发语言·c++
dengjiayue1 小时前
golang实现简单的reids服务2
开发语言·golang
陌上笙清净2 小时前
flask内存马的真谛!!!
后端·python·网络安全·flask
疯狂的沙粒2 小时前
JavaScript 单例模式的创建与应用
开发语言·前端·javascript·vue.js
余额不足121382 小时前
C语言基础六:循环结构及面试上机题
c语言·开发语言