文档章节

从源代码安装Go1.6到CentOS 7

 黄金比
发布于 2016/11/10 15:24
字数 444
阅读 228
收藏 1

在中国网络环境下从源代码安装Go1.6到CentOS 7

https://github.com/northbright/Notes/blob/master/Golang/china/install-go1.6-from-source-on-centos7-in-china.md

背景

  • 在当前的中国网络环境下,我们无法访问Google的服务的,包括Golang.org。
  • 从第三方网站下载预编译的二进制Go发行版可能存在第三方源代码注入的风险,例如之前的XcodeGhost
  • Go的权威仓库地址是https://go.googlesource.com/go,同时还有一个镜像仓库在https://github.com/golang/go
  • 至少在目前,我们还能访问github:-)

问题

  • Go1.6的编译过程需要Go1.4的二进来实现 bootstrap(自举)(简单来说: Go需要Go自身来编译)。

解决方案

  • Github的Go仓库镜像获取Go的源代码。
  • 首先编译Go1.4(只需要gccglibc-devel,不需要Go来编译)。
  • 使用编译好的Go1.4的二进制文件来编译Go1.6。

步骤

  1. 如果之前已经安装过老版本的Go,清除$GOPATH, $GOROOT变量。

  2. 安装好Git

    • 配置 Git
      • git config --global user.email "email-for-github"
      • git config --global user.name "user name"
    • 创建SSH key,添加Public Key到Github账号。
      • ssh-keygen -t rsa -b 2048
      • 复制~/.ssh/id_rsa.pub中的Public Key到github SSH settings以添加新的SSH key
  3. 安装 gccglibc-devel

    • sudo yum install gcc glibc-devel
  4. 从源代码编译安装Go1.4

    • cd ~/
    • git clone git@github.com:golang/go.git
    • cd go
    • git checkout -b 1.4.3 go1.4.3
    • cd src
    • ./all.bash
  5. 复制 ~/go 到 $GOROOT_BOOTSTRAP(默认值是~/go1.4

    • cp ~/go ~/go1.4 -rf
  6. 从源代码编译安装Go1.6

    • cd ~/go
    • git clean -dfx
    • git checkout -b 1.6 go1.6
    • cd src
    • ./all.bash
  7. 设置 $GOPATH 以及添加Go二进制路径到 $PATH

    • sudo vi /etc/profile

        # Golang Env
        export PATH=$PATH:/home/xx/go/bin
        export GOPATH=/home/xx/go-projects
      
  8. 重启和测试

    • sudo reboot
    • go version

        go version go1.6 linux/amd64

本文转载自:https://github.com/northbright/Notes/blob/master/Golang/china/install-go1.6-from-source-on-centos7-i

粉丝 2
博文 6
码字总数 1351
作品 0
海淀
高级程序员
私信 提问
源码编译安装GO1.6

一、问题 GO1.6的编译过程需要GO1.4的二进制来实现bootstrap(自举)(简单来说:GO需要GO自身来编译) 二、解决方案 从Github的GO仓库镜像来获取GO的源码,首先编译GO1.4(只需要gcc和glibc...

hncscwc
2016/04/18
389
4
WebConsole 1.4 发布,SSH 远程终端

WebConsole 1.4 发布了更新日志,该版本修复了 SSH Session 退出异常的 Bug。 WebConsole 是基于Golang、WebSocket、TermJS的SSH远程终端,希望能帮到大家。 主要应用到隔离网络内,SSH远程终...

Eriloan
2016/05/21
2.4K
3
CentOS Linux 7 的 32 位版发布

CentOS Linux 7 的 32 位版本,x86 (i386) 架构发布,此版本是 AltArch Special Interest Group 发布的第一个 32 位 x86 版本,基于 CentOS 7 (1503) x86_64 架构的源代码,包括所有当前 Ce...

purple_grape
2015/10/14
11.3K
16
[Linux学习笔记] Linux软件包管理

Linux软件包管理: 在讲解如何使用rpm,yum来管理软件包前,我们先来看一个很重要的知识点,如何挂在光盘。 实验环境下,首先要将CentOS安装镜像光盘载入,如下截图: 注意: 此时CentOS系统处于...

LSantorini
2015/11/28
71
0
[Linux学习笔记] Linux系统安装 - CentOS

准备: <1>软件1-虚拟机: VMware WorkStation 12 Pro 下载地址: VMware WorkStation 12 Pro.exe [ 密码: l5lx ] <2>软件2-CentOS-7系统: 下载地址: CentOS-7-x8664-DVD-1503-01.iso 下面对这两......

LSantorini
2015/10/23
233
0

没有更多内容

加载失败,请刷新页面

加载更多

typescript 接口 函数类型 可索引类型

函数类型 可索引类型 数字索引签名 字符串索引签名 数字索引签名返回值 必须是 字符串索引签名返回值的子集 只读索引签名

lilugirl
今天
3
0
Oracle SQL语法实例合集

如需转载请注明出处https://my.oschina.net/feistel/blog/3052024 目的:迅速激活Oracle SQL 参考:《Oracle从入门到精通》 ------------------------------------------------------------......

LoSingSang
今天
2
0
增加 PostgreSQL 服务进程的最大打开文件数

https://serverfault.com/questions/628610/increasing-nproc-for-processes-launched-by-systemd-on-centos-7 要在systemd的配置里加才行...

helloclia
今天
2
0
组合模式在商品分类列表中的应用

在所有的树形结构中最适合的设计模式就是组合模式,我们看看常用商品分类中如何使用。 先定义一个树形结构的商品接口 public interface TreeProduct { List<TreeProduct> allProducts(...

算法之名
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部