快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

centos搭建go语言 centos安装go编译环境

腾讯云centos如何搭建

我们注册腾讯云账号之后,进入系统,选择创建服务器

创新互联是一家专业提供北林企业网站建设,专注与成都网站设计、成都网站建设、H5建站、小程序制作等业务。10年已为北林众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。

系统选择的话,建议选择Centos6系统,Centos7系统的话,网上文档相对较少,然后选择Linux系统的原因是Linux系统速度较快,而且安全性较好,不过难配置点

学生认证的话,会员64元的代金卷,所以可以实现¥1/月

创建过程需要注意的是,先要创建秘钥,Linux系统选择22端口哦

创建好之后,还要选择默认安全组放通全部端口,因为我们要搭建Java、PHP开发环境,没有这样做的话,你访问的时候就好出现不可以访问的情况,之后,我再写腾讯云Linux系统PHP开发环境搭建的博客

以上是搭建腾讯云Linux服务器(Centos6)入门教程的内容,网页链接学习linux更多操作

如何为Linux安装Go语言

Go语言在Centos下的安装: 注意,以下命令需要以root身份,或者sudo运行。 说明,如果要自定义安装位置的话,需要配置GOROOT环境变量,所以这里我们采用默认的目录进行安装,就可以不配置GOROOT环境变量了。

centos 7 默认安装go语言环境吗

1.1 Go 安装

Go的三种安装方式

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

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

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

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

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

Go源码安装

在Go的源代码中,有些部分是用Plan 9 C和ATT汇编写的,因此假如你要想从源码安装,就必须安装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用户来说当然是写入环境变量。

如何在 CentOS 7 上安装 Docker

在编译docker代码之前肯定需要研究一下docker的代码结构以及官方推荐的方式,因为docker是开源的,所以很多第三方开发者参与。那么官方肯定会给出开发环境搭建的文档,所以拿到代码肯定先研究官方的编译方法。通过文档和代码了解到docker官方推荐的是在docker本身的容器里面搭建环境和编译,官方给出的是一个基于ubuntu的dockerfile。不过正是这个dockerfile可以清楚的知道需要为了编译准备哪些依赖环境,为我们后面自己编译提供了环境搭建的基础。然后就尝试了官方的编译方案,结果各种网络问题导致编译通不过,当然网上也有相应的解决方案,基本上就是替换一些依赖源(国外的被墙了)。但是就算编译通过了也只是一个基于ubuntu的二进制文件,只能在ubuntu的相应的系统上运行。我们需要的是一个可以在centos7上运行的二进制文件,关键要搭建一个可以持续开发和编译测试的环境。当然也可以制作一个centos7的dockerfile文件,对照着官方的ubuntu的dockerfile也很简单。但是这些都是还需要有一个前提,就是需要先安装一个以前版本的docker来启动这个环境涩,好处也是杠杠的,可以在任何一台能够运行docker的系统上进行开发和测试,而且可以进行持续集成。不过对于我们来说能够编译出一个稳定运行在centos7上的二进制文件即可,所以就尝试直接在本地进行编译,而不是通过docker的容器进行。

经过研究docker的官方编译脚步,发现本地编译也很简单,只需要在docker源码的目录下执行如下命令即可:

./hack/make.sh binary

上面这条命令就只会生成docker的二进制文件,不过肯定不会这么顺利的,执行这个命令你就会发现错误。如果第一次执行报的错误应该是找不到相应的go依赖包。那么现在就开始解决第一个问题,go依赖包。

解决go依赖包最直接的方法就一个一个去github或者其他地方去下载到本地,但是这样做很麻烦,docker依赖的go语言包很多,然后依赖包可能又依赖其他包。这里有一个简单实用的办法,也是go语言管理项目的方便之处。通过go get命令来自动下载,例如发现报错的是docker某一个目录下的依赖包,那么可以如下执行:

go get -v ./src/github.com/docker/docker/...

这条命令执行以后整个docker目录下源文件依赖的包都会被自动下载。如果发现其他目录下源文件也报同样的错误,可以按照次方法解决。不过这里需要强调一点,这些下载都是会下载最新的包,如果编译老的docker肯定会出问题,如果编译最新的docker代码肯定不会有问题,因为官方的编译是这种方式。

上面执行的命令都是建立在go语言环境建立成功的基础上,我安装的go遇到是1.3.3版本的,采用源码方式安装。安装在/export/servers/go下面,然后所有的go语言工程源码目录放在/export/servers/gopath。然后配置环境变量在用户的根目录下的.bashrc文件里面如下:

export GOPATH=/export/servers/gopath

export GOROOT=/export/servers/go

export GOARCH=amd64

export GOOS=linux

然后docker的代码目录如下:/export/servers/gopath/src/github.com/docker/docker。这样才能在gopath下面进行依赖包的下载。通过上面的方法把所有依赖包下载完以后就可以进行编译了。

在继续编译的过程中还会遇到缺少c语言依赖包缺少的问题,主要有三个,(1)sqlite3;(2)device-mapper;(3)btrfs.

第一个sqlite3可以使用如下命令安装依赖:yum install sqlite-devel.x86_64

第二个在官方的dockerfile文件里面有解决方案,执行如下命令:

git clone --no-checkout /usr/local/lvm2 cd /usr/local/lvm2 git checkout -q v2_02_103

cd /usr/local/lvm2 ./configure --enable-static_link make device-mapper make install_device-mapper

第三个btrfs使用如下安装依赖: yum install btrfs-progs。

这些依赖都解决了就继续编译,这个时候可能会出现ld连接错误,提示找不到库。因为docker编译的方式完全是static,所以所有依赖的库必须还要有相应的静态库(.a),而不是动态库(.so)。刚才通过yum install sqlite-devel.x86_64安装了sqlite3的依赖,但是最后发现里面没有静态库,所以编译ld的时候出错了。我的解决办法就是重新到sqlite3的官方网站下载了源码包,然后编译安装即可。

编译完成以后,就会在docker源码目录下的bundles/1.3.1/binary/目录有如下文件:

docker docker-1.3.1 docker-1.3.1.md5 docker-1.3.1.sha256

docker-1.3.1这个文件就是我们需要的二进制文件了,docker是一个软连接到docker-1.3.1的文件。

到此就成功完成编译了,以后修改了代码重新支持编译脚步即可:

./hack/make.sh binary


文章名称:centos搭建go语言 centos安装go编译环境
网页URL:http://6mz.cn/article/hpcjoe.html

其他资讯