如何搭建go语言环境 linux

Python015

如何搭建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用户来说当然是写入环境变量。

学习go语言,大家一定很想如何快速搭建自己的第一个go项目,那么我们就必须了解两个关键点,也就是GOROOT与GOPATH。

GOROOT与GOPATH都是与go项目息息相关的重要路径,前者GOROOT为go的安装环境地址,后者GOPATH为我们的项目地址,也就是我们在这个目录下构建我们的项目依赖,但我们的项目可以不必放在此目录下。

这里着重说一下GOPATH,为什么要有GOPATH这个东西呢,当我们学习go后就会知道,go都会引用很多的依赖来辅助我们进行快速的开发与功能的实现,这点类似python的依赖包与php的扩展,所以go的这些依赖资源也需要一个固定的目录将其存放,以便我们所有的go项目都可以引用这些包,所以,说到这GOPATH这个东西大家都会明白是干什么用的了。

再不明白的看下图。

好了入门问题解决!那么,就开始愉快的搭建go项目吧。

从目前的区块链领域的人才需求来看,大致分为以下几种:

1.搭建基于DLT技术的分布式账本应用,在DLT上实现客户要求的业务需求。这类领域目前比较出名的就是瑞波了。所以DLT是什么意思,看看瑞波在做什么你就懂了。

2.在已有的公链上开发自己的应用,目前大部分的公司都是在做这个。这一类的特点也是门槛低、商业潜力大、风险也较低。

3.公司开发自己的公链,这一类的未来潜力最大,但是风险与技术难度也是最高。

4.区块链生态基础设施类。比如说移动钱包、硬件冷钱包、交易平台、区块链内容平台等等,这一类是目前商业利润最高的区块链产业,相对来说门槛低、风险低,但是竞争者非常多。

如果从技术切入,需要学习哪些语言与知识呢?

对于第一类来说,go语言是必要的,因为DLT基本以go语言为主,同时还需要掌握一定的应用开发的能力,因为交付给客户的必定是一个软件而不是一堆命令行源程序。而对于第二类来讲,目前智能合约的主流还是以太坊智能合约的solidity语言,所以如果想要进入第二类的企业,就需要以以太坊来入手。第三类的公链开发,主流的是c++和go,但也有不少有名项目是以rust实现的,比如说:Facebook的libra、火币公链的nervos等等。第四类实际上则与区块链技术的关系不算太大,因为诸如交易平台这样的开发并不需要区块链技术。

而除了以上的技术硬实力以外,区块链公司更偏爱的人才是“斜杠青年”,也就是同时掌握多领域知识的人才,这里主要也分为三大类:金融与区块链、内容运营与区块链、社区运营与区块链。而在这里面,第三类人才又是最为稀少的,因为大多数技术型人才都不善于沟通与交流,但是区块链由于其分布式的特点,又特别需要社区的共同发力来创建与维护一条链。

最后,很多人误以为区块链是个全新的行业、区块链与传统领域完全不搭,这其实是一个很大的误区,从上述所写来看,你也可以发现区块链说到底最后还是要解决现实中的实际需求,不同的只是解决需求的工具变了,所以不要以为只懂区块链就可以大杀四方,选好要切入的需求领域,具备那个需求领域所需要的基本知识还是非常重要的。

区块链的应用领域有数字货币、通证、金融、防伪溯源、隐私保护、供应链、娱乐等等,区块链、比特币的火爆,不少相关的top域名都被注册,对域名行业产生了比较大的影响。