如何搭建go语言环境 linux

Python023

如何搭建go语言环境 linux,第1张

Go的三种安装方式

Go有多种安装方式,你可以选择自己喜欢的。这里我们介绍三种最常见的安装方式:

Go源码安装:这是一种标准的软件安装方式。对于经常使用Unix类系统的用户,尤其对于开发者来说,从源码安装可以自己定制。

Go标准包安装:Go提供了方便的安装包,支持Windows、Linux、Mac等系统。这种方式适合快速安装,可根据自己的系统位数下载好相应的安装包,一路next就可以轻松安装了。**推荐这种方式**

第三方工具安装:目前有很多方便的第三方软件包工具,例如Ubuntu的apt-get、Mac的homebrew等。这种安装方式适合那些熟悉相应系统的用户。

最后,如果你想在同一个系统中安装多个版本的Go,你可以参考第三方工具GVM,这是目前在这方面做得最好的工具,除非你知道怎么处理。

Go源码安装

在Go的源代码中,有些部分是用Plan 9 C和AT&T汇编写的,因此假如你要想从源码安装,就必须安装C的编译工具。

在Mac系统中,只要你安装了Xcode,就已经包含了相应的编译工具。

在类Unix系统中,需要安装gcc等工具。例如Ubuntu系统可通过在终端中执行sudo apt-get install gcc

libc6-dev来安装编译工具。

在Windows系统中,你需要安装MinGW,然后通过MinGW安装gcc,并设置相应的环境变量。

你可以直接去官网下载源码,找相应的goVERSION.src.tar.gz的文件下载,下载之后解压缩到$HOME目录,执行如下代码:

cd go/src

./all.bash

运行all.bash后出现"ALL TESTS PASSED"字样时才算安装成功。

上面是Unix风格的命令,Windows下的安装方式类似,只不过是运行all.bat,调用的编译器是MinGW的gcc。

如果是Mac或者Unix用户需要设置几个环境变量,如果想重启之后也能生效的话把下面的命令写到.bashrc或者.zshrc里面,

export GOPATH=$HOME/gopath

export PATH=$PATH:$HOME/go/bin:$GOPATH/bin

如果你是写入文件的,记得执行bash .bashrc或者bash

.zshrc使得设置立马生效。

如果是window系统,就需要设置环境变量,在path里面增加相应的go所在的目录,设置gopath变量。

当你设置完毕之后在命令行里面输入go,看到如下图片即说明你已经安装成功

图1.1 源码安装之后执行Go命令的图

如果出现Go的Usage信息,那么说明Go已经安装成功了;如果出现该命令不存在,那么可以检查一下自己的PATH环境变中是否包含了Go的安装目录。

关于上面的GOPATH将在下面小节详细讲解

Go标准包安装

Go提供了每个平台打好包的一键安装,这些包默认会安装到如下目录:/usr/local/go

(Windows系统:c:\Go),当然你可以改变他们的安装位置,但是改变之后你必须在你的环境变量中设置如下信息:

export GOROOT=$HOME/go

export GOPATH=$HOME/gopath

export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

上面这些命令对于Mac和Unix用户来说最好是写入.bashrc或者.zshrc文件,对于windows用户来说当然是写入环境变量。

FilpChip-BGA的流程包括:晶圆减薄→晶圆凸点生成→晶圆切割→芯片倒装→回流焊接→裸芯片下部填胶→表面打标→BGA基板植球→基板回流焊→切割分离→最终检查→测试包装。

FilpChip-BGA封装前,晶圆同样会做减薄处理,然后在晶圆上制作凸点Bump。之后进行晶圆切割,再将芯片倒装焊接到基板上。焊接好后进行清洗,芯片底部填胶等操作,以固定芯片并克服由于芯片和基板CET不一致而导致的应力。BGA基板植球、回流焊接、清洗、打标、切割、测试、包装等流程与Wire Bonding-BGA基本一致。

扩展资料

通过两种工艺的对比,可以看出,两者的基本的流程是一致的,主要区别在于FlipChip倒装焊在切割晶圆片之前要生成芯片的凸点,然后进行芯片倒装、回流焊接等一系列流程。

FlipChip整个工艺流程需要两次回流焊,包括芯片回流焊和BGA基板回流焊。而Wire Bonding则需要芯片粘结、键合、模封等过程,整个工艺流程只需要一次回流焊。

对于SiP系统级封装,由于是多个芯片,就有可能会遇到混合工艺的情况,即在一颗SiP封装中既有WB芯片,也有FC芯片。目前,在实际应用中这种情况已经比较常见,在设计中经常会遇到,如所选的裸芯片中有支持WB工艺的芯片,也有支持FC工艺的芯片,就需要做混合工艺SiP的生产制造。

由于工作的契机,最近学习了下Gossip,以及go语言的实现版本HashiCorp/memberlist。网上有个最基本的memberlist使用的example,在下边的链接中,感兴趣可以按照文档运行下感受感受。本文主要讲解memberlist v0.1.5 的使用细节。

Gossip是最终一致性协议,是目前性能最好,容错性最好的分布式协议。目前Prometheus的告警组件alertmanager、redis、s3、区块链等项目都有使用Gossip。本文不介绍Gossip原理,大家自行谷歌。

简单的几步即可搭建gossip集群

感谢已经有网友为我们实现了一个example( https://github.com/asim/memberlist

)。

哪里有问题,还请大家多多指正

https://www.consul.io/docs/internals/gossip.html

https://en.wikipedia.org/wiki/Gossip_protocol

https://github.com/asim/memberlist

https://github.com/hashicorp/memberlist

https://zhuanlan.zhihu.com/p/41228196