这两天公司成立了go语言学习兴趣小组,慕名参与了学习。目前对于go是0基础,只知道它可以做高并发、效率快、编译简单、母语是C. go的安装有多种形式,编译安装是比较慢的一个,今天我就记录一下学习go编译安装流程。

  1、下载软件包 https://studygolang.com/dl

    go1.12.7.darwin-amd64.tar.gz

  2、解压到/opt/local/etc/位置 我习惯用统一的位置安装软件

    tar -C /opt/local/etc/ -xzf go1.12.7.darwin-amd64.tar.gz

  3、cd go/scr

  4、官方文档上写的到这一步就执行安装 ./all.bash  这个时候会报错的哟

ERROR: Cannot find /Users/admin/go1./bin/go.
Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.

  这是说明,安装go 1.5以上的包需要基于go1.4 的依赖。为什么我也不知道。它好像在找这个目录的go  /Users/admin/go1.4/bin/go. 可惜没有呀。

  网上看了其他案例,它们找的地址不同,大多数是找 /root/go1.4/bin/go 找不到。应该是根据每个人的安装目录有关系。这边继续解决安装go1.4

  5、下载go1.4的代码(只有通过git 克隆最新的代码,切换到1.4版本中去)

sudo git clone https://github.com/golang/go.git

  注意:但是下载git的这个流程真的非常熬时间。建议果断放弃继续往下走,改变一下自己host吧。

  vi /etc/host   加入如下信息,保存退出

192.30.253.112 github.com
151.101.44.249 github.global.ssl.fastly.net

  最后在更新DNS缓存  sudo dscacheutil -flushcache  

  6、经过很长一段时间,代码就会下载完成。这个时候需要 git branch 当前分支是master.

    切换到go1.4版本中去

git checkout release-branch.go1.4

  7、开始编译安装go1.4

    cd go/src

    ./all.bash

    即可执行完成。我这边当时报了一个错,没记录。我的解决方案是执行如下命令即可继续安装。

     export GO14TESTS=1

  8、这个时候将我的go1.4 放到我需要的位置 上文提到了咯,放到 /Users/admin/go1.4 即可。

  9、这个时候重新执行go1.12.7版本

    cd go/src

    ./all.bash

    到此安装成功!

  10、最后一步环境变量

    将 /Users/admin/go1.4/bin  和 我 opt/local/ext/go/bin 放到环境变量中去

     vi ~/.bash_profile

    

export GOPATH="/study/go"
export GOBIN=$GOPATH
export PATH="$PATH:/opt/local/etc/go/bin:/Users/admin/go1.4:$GOPATH/bin:$GOPATH/pkg:$GOBIN"

    保存退出,重启即可

    source ~/.bash_profile

  

  11、test

    

 admin@admindeMBP  /opt/local/etc/go  go version
go version go1.12.7 darwin/amd64

  12、查看go 配置

    go env

    

   

go语言Mac下编译安装语言包的更多相关文章

  1. mac下编译安装grafana 4.2.0

    go语言在开发效率和运行效率中的优势让很多人青睐,所以有倾向打算转向go语言的开发. 下面介绍在Mac OS X中golang的开发环境配置. 1.安装brew brew是一个mac下的由ruby开发 ...

  2. Mac 下编译安装 php-5.6

    1.安装 PHP 1.1 下载源码包 http://php.net/get/php-5.6.35.tar.bz2/from/a/mirror 1.2 编译&安装 ./configure --p ...

  3. CentOS下编译安装python包管理安装工具pip教程

    ubuntu 安装pip 代码如下: apt-get install python-pip 安装requests, pip install requests 对于centos的,直接 yum inst ...

  4. mac下编译安装grafana

    下载grafana源码 从grafana git 仓库下载指定的分支. 编译后端 我下载的时候,grafana的最新release是7.3.7,其需要安装go 1.15版本 生成可执行文件 进入项目根 ...

  5. Mac OSX下编译安装PostgreSQL

    原先使用的是官方提供的安装包,可是安装包会创建postgre这个用户.在登陆界面看的有点不爽,搜索了半天居然没有找到怎样在osx下编译安装的教程,并且假设是依照官方文档的编译安装办法一定会让你崩溃,本 ...

  6. ubuntu15.10下编译安装wine1.8 rc4

    ubuntu15.10下编译安装wine1.8rc4 Wine (“Wine Is Not an Emulator” 的递归缩写)是一个能够在多种 POSIX-compliant 操作系统(诸如 Li ...

  7. Mac下删除安装的pkg

        Mac下的安装和删除都比windows更加简单清晰,这点在dmg方式下非常明显,但很多时候我们会使用pkg来进行安装,这样的安装想删除就有点麻烦了. 比如,我安装了Golang这个pkg用于g ...

  8. Redhat环境下编译安装Google Bazel

    Redhat环境下编译安装bazel 作者:Jack47 目前Google Bazel没有提供各个操作系统下的二进制安装包,只提供源代码,需要我们自己编译安装,详情可以见我翻译的中文版Google B ...

  9. Linux下编译安装qemu和libvirt

    目录 [hide] 1 安装qemu 1.1 qemu介绍 1.2 下载源文件 1.3 编译安装 2 安装libvirt 2.1 libvirt介绍 2.2 下载libvirt 2.3 编译安装 3  ...

随机推荐

  1. 一张图看懂SharpSocket

    SharpSocket提供了很多接口和类,他们被良好地组织在一起,通过下面的图片,可以瞬间看懂整个类库的脉络.通过调用各个接口的方法,完成socket通信的功能.

  2. C# vb .NET读取识别条形码线性条码EAN-13

    EAN-13是比较常见的条形码编码规则类型的一种.如何在C#,vb等.NET平台语言里实现快速准确读取该类型条形码呢?答案是使用SharpBarcode! SharpBarcode是C#快速高效.准确 ...

  3. win7 VirtualBox E_FAIL (0x80004005)解决

    环境:win7virtualbox 6.0.10 安装virtualbox6.0.10之后,新建一个centos虚拟机,提示启动任务失败 报错信息:返回代码: E_FAIL (0x80004005)组 ...

  4. Go的运算符

    1 算术运算符 运算符 术语 示例 结果 + 加 10 + 5 15 - 减 10 - 5 5 * 乘 10 * 5 50 / 除 10 / 5 2 % 取模(取余) 10 % 3 1 ++ 后自增, ...

  5. Python面向对象继承案例

    面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 继承 实现代码的重用,相同的代码不需要重复的编写 多态 不同的对象调用相同的方法,产生不同的执行结果,增加代码的灵活 ...

  6. MySQL之查询篇(三)

    一:查询 1.创建数据库,数据表 -- 创建数据库 create database python_test_1 charset=utf8; -- 使用数据库 use python_test_1; -- ...

  7. Django的安全攻击

    目录 Django的安全攻击 XSS XSS(跨站脚本攻击) 危害 原理 防护 csrf(Cross Site Request Forgery) csrf(跨站域请求伪造) 过程 Django 提供的 ...

  8. 突破Java面试-Redis集群模式的原理

    1 面试题 Redis集群模式的工作原理说一下?在集群模式下,key是如何寻址的?寻址都有哪些算法?了解一致性hash吗? 2 考点分析 Redis不断在发展-Redis cluster集群模式,可以 ...

  9. Html中Css页面跳转问题

    没有指定<a>的target属性值时,默认是"_blank,可以参考以下代码的设置来控制<a href="#" target="_blank& ...

  10. elementUi vue el-radio 监听选中变化

    //change是radio-group标签的事件 <div> <el-radio-group v-model="radioSex" @change=" ...