Golang环境安装

简介: Golang环境安装

Go语言简介

什么是Go语言

  Go语言是谷歌2009发布的第二款开源编程语言。

  Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。

  Go 语言具有很强的表达能力,它简洁、清晰而高效。得益于其并发机制, 用它编写的程序能够非常有效地利用多核与联网的计算机,其新颖的类型系统则使程序结构变得灵活而模块化。

  Go 代码编译成机器码不仅非常迅速,还具有方便的垃圾收集机制和强大的运行时反射机制。 它是一个快速的、静态类型的编译型语言,感觉却像动态类型的解释型语言。

Go语言起源

  Go 语 言 起 源 2007 年, 并 于 2009 年 正 式 对 外 发 布。 它 从 2009 年 9 月 21 日 开 始 作 为 谷 歌 公 司 20% 兼 职 项 目, 即 相 关 员 工 利 用 20% 的 空 余 时 间 来 参 与 Go 语 言 的 研 发 工 作。 该 项 目 的 三 位 领 导 者 均 是 著 名 的 IT 工 程 师: Robert Griesemer, 参 与 开 发 Java HotSpot 虚 拟 机; Rob Pike, Go 语 言 项 目 总 负 责 人, 贝 尔 实 验 室 Unix 团 队 成 员, 参 与 的 项 目 包 括 Plan 9, Inferno 操 作 系 统 和 Limbo 编 程 语 言; Ken Thompson, 贝 尔 实 验 室 Unix 团 队 成 员, C 语 言、 Unix 和 Plan 9 的 创 始 人 之 一, 与 Rob Pike 共 同 开 发 了 UTF-8 字 符 集 规 范。 自 2008 年 1 月 起, Ken Thompson 就 开 始 研 发 一 款 以 C 语 言 为 目 标 结 果 的 编 译 器 来 拓 展 Go 语 言 的 设 计 思 想。

Ivo Balbaert. Go入门指南——The Way to Go(中文版) (Kindle 位置 112-117). 人民邮电出版社.

Go语言特点

  • 简洁、快速、安全
  • 并行、有趣、开源
  • 内存管理、数组安全、编译迅速

GO语言应用场景

  • 服务器编程, 如处理日志、数据打包、虚拟机处理、文件系统等
  • 分布式系统 (数据库代理、中间件)
  • 网络编程 (web应用、api应用)
  • 云平台 例如 docker、k8s都是go语言开发的

Go语言官网

https://golang.org/

如果访问速度慢或者无法访问请访问谷歌中国官网

https://golang.google.cn/

Go语言windows/.macOS/linux/raspberryPi开发环境安装是编程的第一步,也是最简单的. 现在我们就就开始安装最新的go语言开发环境.这篇文章的时候go版本号1.12.9最新的下载页面

从Go 1.13开始,go命令默认使用Go模块镜像和Go运行的校验和数据库来下载和验证模块. 有关这些服务的隐私信息,请参阅proxy.golang.org/privacy ; 有关 配置详细信息, 请参阅 go命令文档,包括如何禁用这些服务器或使用不同的服务器.

windows和mac安装最为简单

windows msi安装Go语言环境

macOS pkg安装Go语言环境

  • 下载安装包pkg文件 https://dl.google.com/go/go1.12.9.darwin-amd64.pkg, 1.12.9 您可以替换成您想要的版本
  • 下载完成之后双击go1.12.9.darwin-amd64.pkg安装文件,同意协议,选择安装路径,勾选自动给您添加环境变量
  • 检查go是否安装成功, 在terminal中敲入 go env
  • 墙内用户设置环境变量goproxyhttps://goproxy.io 或者 https://mirrors.aliyun.com/goproxy/vim ~/.bashrc 或者 vim /etc/profile 在文件最后添加 export GOPROXY=https://goproxy.io 或者 export GOPROXY=https://mirrors.aliyun.com/goproxy/:wq 命令保持文件, 在终端中执行 source /etc/profile 或者 source ~/.bashrc

linux/centos/ubuntu 二进制装Go语言环境

下载安装二进制安装包

VERSION='1.12.9';#设置go语言版本 指定您的版本
OS=linux # 可选值 linux darwin
ARCH=amd64 #可选值 但是必须与您的操作系统匹配 amd64, 386, arm (树莓派raspberryPi3), arm64, s390x, ppc64le
GZFILE="go$VERSION.$OS-$ARCH.tar.gz" # 下载的安装名称包含arch
wget "https://dl.google.com/go/${GZFILE}";
rm -rf /usr/local/go; # 删除旧的go安装文件
tar -C /usr/local -xzf $GZFILE; #解压文件到 /usr/local/go目录中

墙内用户设置环境变量goproxyhttps://goproxy.io 或者 https://mirrors.aliyun.com/goproxy/vim ~/.bashrc 或者 vim /etc/profile 在文件最后添加 export GOPROXY=https://goproxy.io 或者 export GOPROXY=https://mirrors.aliyun.com/goproxy/:wq 命令保持文件, 在终端中执行 source /etc/profile 或者 source ~/.bashrc

当然以上命令也使用于macOS系统但是要选择适合的arch 操作系统

windows 设置goproxy教程,下载墙外的go依赖包

在Windows Powershell中,您可以执行以下命令.

# Enable the go modules feature
$env:GO111MODULE=on
# Set the GOPROXY environment variable
# 或者设置成阿里云的镜像 https://mirrors.aliyun.com/goproxy/
$env:GOPROXY=https://goproxy.io
复制代码

现在,当您构建并运行应用程序时,go将通过goproxy代理获取依赖项.

如果您的Go版本> = 1.13,则GOPRIVATE环境变量控制go命令认为哪些模块是私有的(不公开),因此不应使用代理或校验和数据库.例如: go version > = 1.13

go env -w GOPROXY=https://goproxy.io,direct
# Set environment variable allow bypassing the proxy for selected modules
# 设置.corp.example.com 包名的依赖不使用goproxy代理
go env -w GOPRIVATE=*.corp.example.com

The End

线上交流工具: 在你的terminal中输入 ssh $用户@mojotv.cn

在你的terminal中输入 ssh mojotv.cn hn 查看最新 hacknews


目录
相关文章
|
1月前
|
Go
golang环境安装异常【已解决】
golang环境安装异常【已解决】
18 2
|
8月前
|
Linux Go Windows
golang环境安装
golang环境安装
|
12月前
|
Linux Go Windows
|
程序员 Go 开发工具
【第二章:Golang系列篇】Go基础-环境安装、Go程序初体验
【第二章:Golang系列篇】Go基础-环境安装、Go程序初体验
104 0
|
Go Windows
windows下golang环境安装-详细教程
windows下golang环境安装-详细教程
140 0
windows下golang环境安装-详细教程
|
Go
golang环境安装异常【已解决】
golang环境安装异常【已解决】
158 0
golang环境安装异常【已解决】
|
2月前
|
监控 算法 Go
Golang深入浅出之-Go语言中的服务熔断、降级与限流策略
【5月更文挑战第4天】本文探讨了分布式系统中保障稳定性的重要策略:服务熔断、降级和限流。服务熔断通过快速失败和暂停故障服务调用来保护系统;服务降级在压力大时提供有限功能以保持整体可用性;限流控制访问频率,防止过载。文中列举了常见问题、解决方案,并提供了Go语言实现示例。合理应用这些策略能增强系统韧性和可用性。
153 0
|
2月前
|
前端开发 Go
Golang深入浅出之-Go语言中的异步编程与Future/Promise模式
【5月更文挑战第3天】Go语言通过goroutines和channels实现异步编程,虽无内置Future/Promise,但可借助其特性模拟。本文探讨了如何使用channel实现Future模式,提供了异步获取URL内容长度的示例,并警示了Channel泄漏、错误处理和并发控制等常见问题。为避免这些问题,建议显式关闭channel、使用context.Context、并发控制机制及有效传播错误。理解并应用这些技巧能提升Go语言异步编程的效率和健壮性。
97 5
Golang深入浅出之-Go语言中的异步编程与Future/Promise模式
|
2月前
|
Prometheus 监控 Cloud Native
Golang深入浅出之-Go语言中的分布式追踪与监控系统集成
【5月更文挑战第4天】本文探讨了Go语言中分布式追踪与监控的重要性,包括追踪的三个核心组件和监控系统集成。常见问题有追踪数据丢失、性能开销和监控指标不当。解决策略涉及使用OpenTracing或OpenTelemetry协议、采样策略以及聚焦关键指标。文中提供了OpenTelemetry和Prometheus的Go代码示例,强调全面可观测性对微服务架构的意义,并提示选择合适工具和策略以确保系统稳定高效。
177 5
|
2月前
|
监控 负载均衡 算法
Golang深入浅出之-Go语言中的协程池设计与实现
【5月更文挑战第3天】本文探讨了Go语言中的协程池设计,用于管理goroutine并优化并发性能。协程池通过限制同时运行的goroutine数量防止资源耗尽,包括任务队列和工作协程两部分。基本实现思路涉及使用channel作为任务队列,固定数量的工作协程处理任务。文章还列举了一个简单的协程池实现示例,并讨论了常见问题如任务队列溢出、协程泄露和任务调度不均,提出了解决方案。通过合理设置缓冲区大小、确保资源释放、优化任务调度以及监控与调试,可以避免这些问题,提升系统性能和稳定性。
74 6