Go--下载安装

下载包地址:https://go.dev/dl/

linux:

下载后上传实例解压

tar -xvf go1.19.8.linux-amd64.tar.gz -C /usr/local/

创建工作目录 /home/go 及子目录

  • src  里面每一个子目录,就是一个包。包内是Go的源码文件
  • pkg 编译后生成的,包的目标文件
  • bin  生成的可执行文件

设置环境变量

#文件末尾加上
vim /etc/profile
export GOROOT=/usr/local/go ##Golang安装目录
export PATH=$GOROOT/bin:$PATH
export GOPATH=/home/go  ##Golang项目目录

#刷新环境变量
source /etc/profile

至此安装完成

#查看版本
go version

#查看变量信息
go env

 

然后需要注意两个环境变量值

GO111MODULE:

GO111MODULE 是 Go 1.11 及以后版本引入的一个用于控制 Go 模块系统行为的环境变量。它有三种可选值:

  1. auto(默认值):

    • Go 会自动根据当前工作目录下是否存在 go.mod 文件来决定是否启用 Go 模块系统。
    • 如果存在 go.mod 文件,则自动启用模块系统。
    • 如果不存在 go.mod 文件,则自动使用 GOPATH 模式。
  2. on:

    • 强制启用 Go 模块系统,即使当前工作目录下没有 go.mod 文件。
    • 这对于位于 GOPATH 之外的项目很有用,因为它们无法自动使用 GOPATH 模式。
  3. off:

    • 禁用 Go 模块系统,强制使用 GOPATH 模式。
    • 这在某些情况下可能很有用,比如你需要依赖一些不支持 Go 模块的老旧库。

Go 模块系统的主要优点包括:

  1. 更好的依赖管理:

    • 使用语义化版本号管理依赖。
    • 支持版本锁定,避免意外的依赖升级。
    • 支持多版本并存,解决版本冲突问题。
  2. 更好的构建体验:

    • 无需手工维护 GOPATH 目录结构。
    • 支持 vendoring,可以将依赖包含在项目内部。
    • 构建速度更快,因为只需下载必需的依赖。
  3. 更好的跨平台支持:

    • 项目不再依赖于特定的 GOPATH 环境。
    • 可以在任何目录下构建和运行项目。

 

修改该值:

#临时
export GO111MODULE=on

#永久
go env -w GO111MODULE=auto
#或
echo 'export GO111MODULE=on' >> ~/.bashrc

 

GOPROXY:

GOPROXY 是另一个非常重要的 Go 环境变量,它用于控制 Go 模块系统从何处下载依赖包。

GOPROXY 的可选值如下(默认为https://proxy.golang.org,direct):

  1. direct (默认值)

    • Go 会直接从源站 (如 pkg.go.dev) 下载依赖包。
  2. off

    • Go 会禁用代理,只能从源站下载依赖包。
  3. 自定义代理 URL

    • 可以设置为一个 HTTP/HTTPS 代理服务器的 URL,例如 https://goproxy.cn
    • Go 会从这个代理服务器下载依赖包。

使用代理的主要好处有:

  1. 加速下载:

    • 代理服务器可以缓存依赖包,避免重复下载。
    • 特别是在网络环境较差的情况下,代理服务器可以大大提高下载速度。
  2. 访问受限的依赖:

    • 某些依赖包可能无法直接从源站下载,比如被防火墙屏蔽的情况。
    • 使用代理可以绕过这些限制,下载受限的依赖包。
  3. 审查和过滤:

    • 代理服务器可以对下载的依赖包进行审查和过滤。
    • 比如可以拦截含有恶意代码的依赖包,提高项目的安全性。

 

修改该值:

#临时
export GOPROXY=https://goproxy.cn

#永久
go env -w GOPROXY=https://goproxy.cn
#或
echo 'export GOPROXY=https://goproxy.cn' >> ~/.bashrc

 

最后,项目在/home/go下运行,在/usr/local/go里下载依赖;或者先本地使用goland写好代码,直接打包项目放入linux项目目录中运行。

 

posted @ 2023-04-20 18:31  心恩惠动  阅读(71)  评论(0编辑  收藏  举报