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位安装包:

  1. Microsoft Windows
  2. Windows 7 or later, Intel 64-bit processor
  3. go1.18.5.windows-amd64.msi (130MB)

选择安装目录后,直接点击安装即可。

安装完毕之后,首先输入“win+R”,打开终端。然后在里面输入命令:control system。在打开的系统信息界面中,选择左侧菜单的“高级系统设置”。随后在打开的“系统属性”窗口选择下方的“环境变量”选项。最后在打开的环境变量中,检查系统是否将Go lang的安装目录"c:/go/bin"配置到了环境变量里,如果已经配置了,在终端中键入命令:

  1. go version

系统返回:

  1. C:\Users\liuyue>go version
  2. go version go1.18.5 windows/amd64

说明Go lang1.18版本已经在系统中安装成功。

Mac平台

接着来到Mac系统,Mac系统一般会包含两套架构,分别是:搭载Intel芯片的x86架构系统,和搭载M系列芯片的ARM架构系统。

首先打开终端,键入如下命令:

  1. uname -m

如果返回:

  1. arm64

说明是ARM架构系统,反之:

  1. x86

则是Intel芯片的x86架构系统。

前往Go lang官网 https://go.dev/dl/ ARM架构系统下载:

  1. Apple macOS (ARM64)
  2. macOS 11 or later, Apple 64-bit processor
  3. go1.18.5.darwin-arm64.pkg (132MB)

X86架构系统下载:

  1. Apple macOS (x86-64)
  2. macOS 10.13 or later, Intel 64-bit processor
  3. go1.18.5.darwin-amd64.pkg (138MB)

下载之后,双击进行安装即可。

区别于Windows平台,我们还可以使用更加灵活的方式安装配置Go lang1.18,那就是鼎鼎有名的Homebrew。

Homebrew是一款自由及开放源代码的软件包管理系统,用以简化macOS系统上的软件安装过程,最初由马克斯·霍威尔写成。因其可扩展性得到了一致好评,而在Ruby on Rails社区广为人知。 Homebrew使用GitHub,通过用户的贡献扩大对软件包的支持,同样也支持Go lang生态环境。

首先安装Homebrew:

  1. /bin/zsh -c "$(curl -fsSLhttps://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)”

随后运行命令清理缓存和更新版本:

  1. brew cleanup && brew update

接着运行命令进行go lang1.18的安装操作:

  1. brew install go

接着会进行下载安装操作:

  1. brew install go
  2. ==> Downloading https://ghcr.io/v2/homebrew/core/go/manifests/1.18.5
  3. Already downloaded: /Users/liuyue/Library/Caches/Homebrew/downloads/819fc08bdc0ecafc9713bdfd76a9e6901172c0b2c0cdde0dd482a0b37ba008fd--go-1.18.5.bottle_manifest.json
  4. ==> Downloading https://ghcr.io/v2/homebrew/core/go/blobs/sha256:4f80cc29d711ddc5038f6b4684fe31674df01284aaa611480
  5. ==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha256:4f80cc29d711ddc5038f6b4684fe3
  6. ######################################################################## 100.0%
  7. ==> Pouring go--1.18.5.arm64_monterey.bottle.tar.gz
  8. ???? /opt/homebrew/Cellar/go/1.18.5: 11,990 files, 596.2MB
  9. ==> Running `brew cleanup go`...
  10. Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
  11. Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).

由于诸位可以理解的原因,这里建议大家用学术的方式连接互联网从而获取更快的下载速度。

最后执行命令清理安装包缓存:

  1. brew cleanup go

接着键入命令就可以查看go lang具体的安装目录:

  1. brew list go
  2. /opt/homebrew/Cellar/go/1.18.5/bin/go
  3. /opt/homebrew/Cellar/go/1.18.5/bin/gofmt
  4. /opt/homebrew/Cellar/go/1.18.5/libexec/api/ (22 files)
  5. /opt/homebrew/Cellar/go/1.18.5/libexec/bin/ (2 files)
  6. /opt/homebrew/Cellar/go/1.18.5/libexec/doc/ (5 files)
  7. /opt/homebrew/Cellar/go/1.18.5/libexec/lib/ (3 files)
  8. /opt/homebrew/Cellar/go/1.18.5/libexec/misc/ (393 files)
  9. /opt/homebrew/Cellar/go/1.18.5/libexec/pkg/ (695 files)
  10. /opt/homebrew/Cellar/go/1.18.5/libexec/src/ (7786 files)
  11. /opt/homebrew/Cellar/go/1.18.5/libexec/test/ (3071 files)
  12. /opt/homebrew/Cellar/go/1.18.5/libexec/ (6 files)

在终端键入命令:

  1. go version

系统返回:

  1. ~ go version
  2. go version go1.18.5 darwin/arm64

这里建议使用Homebrew来安装Go lang,brew会根据当前系统架构来自动选择不同系统架构的编译版本来进行安装。

Ubuntu/Centos

首先删除 /usr/local/go 目录,根据官网说明,如果之前有安装过 go,那么需要将该位置的 go 目录删除掉 :

  1. sudo rm -rf /usr/local/go

接着下载安装并安装:

  1. # 下载安装包
  2. $ wget https://golang.google.cn/dl/go1.18.linux-amd64.tar.gz
  3. # 解压 golang 到 /usr/local 下
  4. $ sudo tar xzvf go1.18.linux-amd64.tar.gz -C /usr/local

最后设置环境变量:

  1. # 修改 $HOME/.profile 或 /etc/profile 文件
  2. # 这里可能会出现权限不足(ubuntu需要加sudo, centos需要切换成root权限)
  3. $ sudo vim /etc/profile
  4. # 在该文件最后一行插入(进入后,按 i键进入编辑模式)
  5. $ export PATH=$PATH:/usr/local/go/bin
  6. # 按 esc 退出编辑模式, 按 :wq 保存文件
  7. $ go version

系统返回:

  1. go version go1.18 linux/amd64

Docker容器搭建

如果我们不希望go lang在系统中留下些许的痕迹,Docker也可以帮我们快速搭建开发环境,关于Docker的安装,请移玉步至:一寸宕机一寸血,十万容器十万兵|Win10/Mac系统下基于Kubernetes(k8s)搭建Gunicorn+Flask高可用Web集群

首先建立环境文件夹:

  1. mkdir mygo
  2. cd mygo

随后创建测试脚本hello.go:

  1. package main
  2. func main() {
  3. println("hello go1.18")
  4. }

接着创建Docker镜像打包文件Dockerfile:

  1. FROM golang:alpine
  2. WORKDIR /build
  3. COPY hello.go .
  4. RUN go build -o hello hello.go
  5. CMD ["./hello"]

这里的创建逻辑是基础镜像选择alpine,容器内创建build编译文件夹,将hello.go拷贝到build目录下,随后运行容器内的go编译器对脚本进行打包,最后运行打包后的可执行文件。

运行命令打包镜像:

  1. docker build -t go .

随后系统自动下载基础镜像并且编译:

  1. Sending build context to Docker daemon 3.072kB
  2. Step 1/5 : FROM golang:alpine
  3. ---> 15115d36d05e
  4. Step 2/5 : WORKDIR /build
  5. ---> Using cache
  6. ---> 09ea4177a5f7
  7. Step 3/5 : COPY hello.go .
  8. ---> 20ff0208e342
  9. Step 4/5 : RUN go build -o hello hello.go
  10. ---> Running in c03d13c80c36
  11. Removing intermediate container c03d13c80c36
  12. ---> c41673d8b447
  13. Step 5/5 : CMD ["./hello"]
  14. ---> Running in 8f74af4426cf
  15. Removing intermediate container 8f74af4426cf
  16. ---> caf626888641
  17. Successfully built caf626888641
  18. Successfully tagged go:latest

查看镜像明细:

  1. docker images

返回明细:

  1. [root@instance-7dojaq0e mygo]# docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. go latest caf626888641 43 minutes ago 329MB
  4. golang alpine 15115d36d05e 15 hours ago 328MB

运行docker命令启动容器:

  1. docker run -it --rm go

系统返回:

  1. 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,使用组合键:

  1. control + shift + p

如果是mac平台,键入:

  1. cmd + shift + p

在弹出的命令行中选择:Install Package

然后输入:Golang Build 按回车安装

安装成功后,配置go lang安装路径:

首选项 -> package settings -> Golang Config -> Settings - Uesrs

  1. {
  2. "PATH": "C:/Go/bin",
  3. "GOPATH": "C:/Go"
  4. }

紧接着配置go mod,go mod是Go语言的包管理工具,官方推荐使用,有了它就不再受GOPATH的限制,可以在任何目录初始化项目,打开命令行,键入命令:

  1. go env -w GO111MODULE=auto
  2. go env -w GOPROXY=https://goproxy.cn,direct

然后在Sublime 4中新建一个hello.go文件:

  1. package main
  2. import "fmt"
  3. func main() {
  4. fmt.Println("hello go1.18")
  5. }

接着使用快捷键 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平台用户来说,这无疑是一个重大利好。

兔起鹘落全端涵盖,Go lang1.18入门精炼教程,由白丁入鸿儒,全平台(Sublime 4)Go lang开发环境搭建EP00的更多相关文章

  1. 仙人指路,引而不发,Go lang1.18入门精炼教程,由白丁入鸿儒,Golang中New和Make函数的使用背景和区别EP16

    Golang只有二十五个系统保留关键字,二十几个系统内置函数,加起来只有五十个左右需要记住的关键字,纵观编程宇宙,无人能出其右.其中还有一些保留关键字属于"锦上添花",什么叫锦上添 ...

  2. 延宕执行,妙用无穷,Go lang1.18入门精炼教程,由白丁入鸿儒,Golang中defer关键字延迟调用机制使用EP17

    先行定义,延后执行.不得不佩服Go lang设计者天才的设计,事实上,defer关键字就相当于Python中的try{ ...}except{ ...}finally{...}结构设计中的finall ...

  3. 清源正本,鉴往知来,Go lang1.18入门精炼教程,由白丁入鸿儒,Golang中引用类型是否进行引用传递EP18

    开篇明义,Go lang中从来就不存在所谓的"引用传递",从来就只有一种变量传递方式,那就是值传递.因为引用传递的前提是存在"引用变量",但是Go lang中从 ...

  4. 你有对象类,我有结构体,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang结构体(struct)的使用EP06

    再续前文,在面向对象层面,Python做到了超神:万物皆为对象,而Ruby,则干脆就是神:飞花摘叶皆可对象.二者都提供对象类操作以及继承的方式为面向对象张目,但Go lang显然有一些特立独行,因为它 ...

  5. 百亿数据百亿花, 库若恒河沙复沙,Go lang1.18入门精炼教程,由白丁入鸿儒,Go lang数据库操作实践EP12

    Golang可以通过Gorm包来操作数据库,所谓ORM,即Object Relational Mapping(数据关系映射),说白了就是通过模式化的语法来操作数据库的行对象或者表对象,对比相对灵活繁复 ...

  6. 层次分明井然有条,Go lang1.18入门精炼教程,由白丁入鸿儒,Go lang包管理机制(package)EP10

    Go lang使用包(package)这种概念元素来统筹代码,所有代码功能上的可调用性都定义在包这个级别,如果我们需要调用依赖,那就"导包"就行了,无论是内部的还是外部的,使用im ...

  7. 化整为零优化重用,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang函数的定义和使用EP07

    函数是基于功能或者逻辑进行聚合的可复用的代码块.将一些复杂的.冗长的代码抽离封装成多个代码片段,即函数,有助于提高代码逻辑的可读性和可维护性.不同于Python,由于 Go lang是编译型语言,编译 ...

  8. 因势而变,因时而动,Go lang1.18入门精炼教程,由白丁入鸿儒,Go lang泛型(generic)的使用EP15

    事实上,泛型才是Go lang1.18最具特色的所在,但为什么我们一定要拖到后面才去探讨泛型?类比的话,我们可以想象一下给小学一年级的学生讲王勃的千古名篇<滕王阁序>,小学生有多大的概率可 ...

  9. 巨细靡遗流程控制,Go lang1.18入门精炼教程,由白丁入鸿儒,Go lang流程结构详解EP09

    流程结构就是指程序逻辑到底怎么执行,进而言之,程序执行逻辑的顺序.众所周知,程序整体都是自上由下执行的,但有的时候,又不仅仅是从上往下执行那么简单,大体上,Go lang程序的流程控制结构一共有三种: ...

随机推荐

  1. 让 API 测试变的简单。

    做开发已经四年有余了,之前在接口测试的时候最开始用的自己写的测试类进行测试,后来接触到了 postman 和 swagger ,虽然用起来比自己写的强太多了,但是总觉得差点事儿. 一方面是 postm ...

  2. Netty源码研究笔记(4)——EventLoop系列

    1. Netty源码研究笔记(4)--EventLoop系列 EventLoop,即事件驱动,它是Netty的I/O模型的抽象,负责处理I/O事件.任务. 不同的EventLoop代表着不同的I/O模 ...

  3. 检查MySQL主从复制运行状态

    脚本思路: 1.使用MySQL客户端命令"mysql"直接在命令行中运行MySQL指令"show slave status\G;"来查看MySQL主从复制状态信 ...

  4. 是时候为Spring Boot 3.0做准备了

    2018年2月28日Spring Boot进入2.0时代,距今已经超过4年了. 2022 年 11 月 Spring Boot 3.0 将正式发布,它将基于 Spring Framework 6.0, ...

  5. conda创建/移除虚拟环境

    conda创建python虚拟环境 前言 conda常用的命令: conda list 查看安装了哪些包. conda env list 或 conda info -e 查看当前存在哪些虚拟环境 co ...

  6. 使用kubeseal加密和管理k8s集群的secret

    使用kubeseal加密和管理k8s集群的secret 在k8s的管理过程中,像secret这种资源并不好维护,kubeseal提供了一种相对简单的方式来对原始secret资源进行加密,并通过控制器进 ...

  7. 漏洞修复之Oracle系列

    Oracle 11g CVE-2012-1675(远程投毒)漏洞修复. 数据库版本 Oracle 11g 11.2.0.4.0非RAC 漏洞编号 CVE-2012-1675 漏洞介绍 Oracle允许 ...

  8. C语言- 基础数据结构和算法 - 循环链表

    听黑马程序员教程<基础数据结构和算法 (C版本)>,照着老师所讲抄的, 视频地址https://www.bilibili.com/video/BV1vE411f7Jh?p=1 喜欢的朋友可 ...

  9. Tomcat部署接口环境遇到的问题,有没有人能帮忙解决指导一下

    1.在虚拟机中用Tomcat部署一个接口环境:linux+jdk+Tomcat 前提条件:代码包啥的别人都用过,可以部署成功 2.具体部署: a. 利用xftp把所有的代码包war包传送到tomcat ...

  10. 关于react的props你需要知道的一个简单方法

    //注意一点:函数名必须大写 function Clock(props) { return ( <div> <h1>Hello, world!</h1> <h ...