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

兔起鹘落全端涵盖,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. 好客租房22-react组件的两种创建方式(类组件)

    2.2使用类创建组件 类组件:使用ES6的class创建的组件 约定1:类组件必须以大写字母开头 约定2:类组件应该继承react.component父类 从中可以使用父类的方法和属性 约定3:组件必 ...

  2. python基础与数据类型(int, float, str, list)

    目录 python多版本共存 在cmd窗口进入不同版本的python环境 在pycharm中切换不同的版本 python语法之注释 python变量与常量 变量 变量的本质 变量的命名规范 常量 py ...

  3. Seata源码分析——SessionManager

    目录 事务管理器 SessionManager SessionLifecycleListener AbstractSessionManager 事务存储管理器 RedisTransactionStor ...

  4. hash和history路由的区别

    在了解路由模式前,我们先看下 什么是单页面应用,vue-router  的实现原理是怎样的,这样更容易理解路由. SPA与前端路由 SPA(单页面应用,全程为:Single-page Web appl ...

  5. Dubbo3 源码系列 -- 环境准备

    Dubbo3 源码系列 -- 环境准备 前言 工作中一直使用Dubbo项目,借着这次机会通过源码的方式来学习下Dubbo的源码内容.目前市面上很多都是的Dubbo2系列的教程:就连目前的Dubbo的官 ...

  6. DataX异构数据源离线同步工具json文件配置说明

    DataX 是阿里开源的一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL.Oracle等).HDFS.Hive.ODPS.HBase.FTP等各种异构数据源之间稳定高效的数据同步功能 ...

  7. 利用shell脚本自动化备份数据库与手动备份还原数据库操作

    1.在linux操作系统上手动备份数据库 mysqldump -h 服务器IP地址 -u root -p数据库密码 --databases 所要备份的数据库名称 > /路径/数据库.sql(自定 ...

  8. RMQ——ST表

    ST表 ST表是一种解决RMQ问题的强有力工具, 可以做到O(nlogn)预处理,O(1)查询. st[i][j] 表示区间 [i, i + 2 ^ j - 1] 的最大值. 初值 st[i][0] ...

  9. java提前工作、第一个程序

    java提前工作 我们学习编程肯定会 运用到相应的软件 在这里 我个人推荐 eclipse.idea 这里的软件呢 都是用我们的java编程出来的,那它也需要用java来支持他的开发环境 这里就运用到 ...

  10. BUUCTF-N种方法解决

    N种方法解决 这题提供的是一个key.exe 运行一下发现没办法运行,老办法,放到16进制打开看看. 这个data:image/jpg很明显了,base64转图片. 编码完成得到了一张二维码,再将得到 ...