原文转载自「刘悦的技术博客」https://v3u.cn/a_id_222
Go lang,为并发而生的动态语言,源于 C 语言又不拘泥于性能,高效却不流于古板,Python 灵便,略输性能,Java 谨严,稍逊风骚。君不见各大厂牌均纷纷应用 Go lang 对本人的高并发业务进行重构,原因无他,经济上行的大背景之下,性能突出、效率拉满的 Go lang 无疑是高并发场景下节约服务器资源的一剂灵药。
与时俱进,顺应潮流,本次咱们乘着市场的东风,在各大支流平台 (Win/Mac/Linux/Docker) 装置并搭建 Go lang1.18 的开发环境,短时间内做到可能在任何一款开发机或者服务器上输入 Go lang 的全副功力,如臂使指,龙飞凤舞。
Windows11 平台
首先来到市场占有率最高的 Win11 零碎,返回 Go lang 官网 https://go.dev/dl/ 下载 win 平台下的 64 位安装包:
Microsoft Windows
Windows 7 or later, Intel 64-bit processor
go1.18.5.windows-amd64.msi (130MB)
抉择装置目录后,间接点击装置即可。
装置结束之后,首先输出“win+R”,关上终端。而后在外面输出命令:control system。在关上的零碎信息界面中,抉择左侧菜单的“高级零碎设置”。随后在关上的“零碎属性”窗口抉择下方的“环境变量”选项。最初在关上的环境变量中,查看零碎是否将 Go lang 的装置目录 ”c:/go/bin” 配置到了环境变量里,如果曾经配置了,在终端中键入命令:
go version
零碎返回:
C:\Users\liuyue>go version
go version go1.18.5 windows/amd64
阐明 Go lang1.18 版本曾经在零碎中装置胜利。
Mac 平台
接着来到 Mac 零碎,Mac 零碎个别会蕴含两套架构,别离是:搭载 Intel 芯片的 x86 架构零碎,和搭载 M 系列芯片的 ARM 架构零碎。
首先关上终端,键入如下命令:
uname -m
如果返回:
arm64
阐明是 ARM 架构零碎,反之:
x86
则是 Intel 芯片的 x86 架构零碎。
返回 Go lang 官网 https://go.dev/dl/ ARM 架构零碎下载:
Apple macOS (ARM64)
macOS 11 or later, Apple 64-bit processor
go1.18.5.darwin-arm64.pkg (132MB)
X86 架构零碎下载:
Apple macOS (x86-64)
macOS 10.13 or later, Intel 64-bit processor
go1.18.5.darwin-amd64.pkg (138MB)
下载之后,双击进行装置即可。
区别于 Windows 平台,咱们还能够应用更加灵便的形式装置配置 Go lang1.18,那就是鼎鼎有名的 Homebrew。
Homebrew 是一款自在及凋谢源代码的软件包管理系统,用以简化 macOS 零碎上的软件装置过程,最后由马克斯·霍威尔写成。因其可扩展性失去了统一好评,而在 Ruby on Rails 社区广为人知。Homebrew 应用 GitHub,通过用户的奉献扩充对软件包的反对,同样也反对 Go lang 生态环境。
首先装置 Homebrew:
/bin/zsh -c "$(curl -fsSLhttps://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)”
随后运行命令清理缓存和更新版本:
brew cleanup && brew update
接着运行命令进行 go lang1.18 的安装操作:
brew install go
接着会进行下载安装操作:
brew install go
==> Downloading https://ghcr.io/v2/homebrew/core/go/manifests/1.18.5
Already downloaded: /Users/liuyue/Library/Caches/Homebrew/downloads/819fc08bdc0ecafc9713bdfd76a9e6901172c0b2c0cdde0dd482a0b37ba008fd--go-1.18.5.bottle_manifest.json
==> Downloading https://ghcr.io/v2/homebrew/core/go/blobs/sha256:4f80cc29d711ddc5038f6b4684fe31674df01284aaa611480
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha256:4f80cc29d711ddc5038f6b4684fe3
######################################################################## 100.0%
==> Pouring go--1.18.5.arm64_monterey.bottle.tar.gz
???? /opt/homebrew/Cellar/go/1.18.5: 11,990 files, 596.2MB
==> Running `brew cleanup go`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
因为诸位能够了解的起因,这里倡议大家用学术的形式连贯互联网从而获取更快的下载速度。
最初执行命令清理安装包缓存:
brew cleanup go
接着键入命令就能够查看 go lang 具体的装置目录:
brew list go
/opt/homebrew/Cellar/go/1.18.5/bin/go
/opt/homebrew/Cellar/go/1.18.5/bin/gofmt
/opt/homebrew/Cellar/go/1.18.5/libexec/api/ (22 files)
/opt/homebrew/Cellar/go/1.18.5/libexec/bin/ (2 files)
/opt/homebrew/Cellar/go/1.18.5/libexec/doc/ (5 files)
/opt/homebrew/Cellar/go/1.18.5/libexec/lib/ (3 files)
/opt/homebrew/Cellar/go/1.18.5/libexec/misc/ (393 files)
/opt/homebrew/Cellar/go/1.18.5/libexec/pkg/ (695 files)
/opt/homebrew/Cellar/go/1.18.5/libexec/src/ (7786 files)
/opt/homebrew/Cellar/go/1.18.5/libexec/test/ (3071 files)
/opt/homebrew/Cellar/go/1.18.5/libexec/ (6 files)
在终端键入命令:
go version
零碎返回:
➜ ~ go version
go version go1.18.5 darwin/arm64
这里倡议应用 Homebrew 来装置 Go lang,brew 会依据以后零碎架构来主动抉择不同零碎架构的编译版本来进行装置。
Ubuntu/Centos
首先删除 /usr/local/go 目录,依据官网阐明,如果之前有装置过 go,那么须要将该地位的 go 目录删除掉:
sudo rm -rf /usr/local/go
接着下载安装并装置:
# 下载安装包
$ wget https://golang.google.cn/dl/go1.18.linux-amd64.tar.gz
# 解压 golang 到 /usr/local 下
$ sudo tar xzvf go1.18.linux-amd64.tar.gz -C /usr/local
最初设置环境变量:
# 批改 $HOME/.profile 或 /etc/profile 文件
# 这里可能会呈现权限有余(ubuntu 须要加 sudo, centos 须要切换成 root 权限)
$ sudo vim /etc/profile
# 在该文件最初一行插入(进入后,按 i 键进入编辑模式)
$ export PATH=$PATH:/usr/local/go/bin
# 按 esc 退出编辑模式, 按 :wq 保留文件
$ go version
零碎返回:
go version go1.18 linux/amd64
Docker 容器搭建
如果咱们不心愿 go lang 在零碎中留下些许的痕迹,Docker 也能够帮咱们疾速搭建开发环境,对于 Docker 的装置,请移玉步至:一寸宕机一寸血,十万容器十万兵 |Win10/Mac 零碎下基于 Kubernetes(k8s)搭建 Gunicorn+Flask 高可用 Web 集群。
首先建设环境文件夹:
mkdir mygo
cd mygo
随后创立测试脚本 hello.go:
package main
func main() {println("hello go1.18")
}
接着创立 Docker 镜像打包文件 Dockerfile:
FROM golang:alpine
WORKDIR /build
COPY hello.go .
RUN go build -o hello hello.go
CMD ["./hello"]
这里的创立逻辑是根底镜像抉择 alpine,容器内创立 build 编译文件夹,将 hello.go 拷贝到 build 目录下,随后运行容器内的 go 编译器对脚本进行打包,最初运行打包后的可执行文件。
运行命令打包镜像:
docker build -t go .
随后零碎主动下载根底镜像并且编译:
Sending build context to Docker daemon 3.072kB
Step 1/5 : FROM golang:alpine
---> 15115d36d05e
Step 2/5 : WORKDIR /build
---> Using cache
---> 09ea4177a5f7
Step 3/5 : COPY hello.go .
---> 20ff0208e342
Step 4/5 : RUN go build -o hello hello.go
---> Running in c03d13c80c36
Removing intermediate container c03d13c80c36
---> c41673d8b447
Step 5/5 : CMD ["./hello"]
---> Running in 8f74af4426cf
Removing intermediate container 8f74af4426cf
---> caf626888641
Successfully built caf626888641
Successfully tagged go:latest
查看镜像明细:
docker images
返回明细:
[root@instance-7dojaq0e mygo]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
go latest caf626888641 43 minutes ago 329MB
golang alpine 15115d36d05e 15 hours ago 328MB
运行 docker 命令启动容器:
docker run -it --rm go
零碎返回:
hello go1.18
至此,Docker 搭建 go lang1.18 环境就实现了。
Sublime 4 for Go lang
编写 Go lang 代码也能够抉择轻量编辑器 Sublime,是的,一律千篇的 Goland 多多少少有点审美疲劳,对于 Sublime 4 的装置,请移步:轻捷洒脱卓然不群,麻利编辑器 Sublime text 4 中文配置 Python3 开发运行代码环境 (Win11+M1 mac) 这里不再赘述。
关上 Sublime 4,应用组合键:
control + shift + p
如果是 mac 平台,键入:
cmd + shift + p
在弹出的命令行中抉择:Install Package
而后输出:Golang Build 按回车装置
装置胜利后,配置 go lang 装置门路:
首选项 -> package settings -> Golang Config -> Settings – Uesrs
{
"PATH": "C:/Go/bin",
"GOPATH": "C:/Go"
}
紧接着配置 go mod,go mod 是 Go 语言的包管理工具,官网举荐应用,有了它就不再受 GOPATH 的限度,能够在任何目录初始化我的项目,关上命令行,键入命令:
go env -w GO111MODULE=auto
go env -w GOPROXY=https://goproxy.cn,direct
而后在 Sublime 4 中新建一个 hello.go 文件:
package main
import "fmt"
func main() {fmt.Println("hello go1.18")
}
接着应用快捷键 control + b 或者 control + shift + b 抉择 go run 编译器运行代码,Mac 零碎用 cmd 替换 control,如图所示:
随后持续装置代码补全插件,键入:control + shift + p 并输出:Install Package
输出:Golang Tools Integration 回车进行装置
重启 Sublime 4。
随后即可在代码中进行补全操作:
至此,开发编辑器就配置好了。
结语
不同于 Python 或者是 Ruby,Go lang 不是零碎预装的根底语言,所以配置起来绝对独立,不须要思考与零碎版本抵触问题。与此同时,Golang 还反对穿插编译性能,即在 Windows 平台能够将代码编译成 Linux 平台可执行的文件,对于 Windows 平台用户来说,这无疑是一个重大利好。
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_222