從源代碼安裝Go1.6到CentOS 7

在中國網絡環境下從源代碼安裝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變量。html

  2. 安裝好Gitlinux

    • 配置 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-develgit

    • sudo yum install gcc glibc-devel
  4. 從源代碼編譯安裝Go1.4github

    • 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.4golang

    • cp ~/go ~/go1.4 -rf
  6. 從源代碼編譯安裝Go1.6bootstrap

    • cd ~/go
    • git clean -dfx
    • git checkout -b 1.6 go1.6
    • cd src
    • ./all.bash
  7. 設置 $GOPATH 以及添加Go二進制路徑到 $PATHcentos

    • sudo vi /etc/profilebash

      # Golang Env
        export PATH=$PATH:/home/xx/go/bin
        export GOPATH=/home/xx/go-projects
  8. 重啓和測試網絡

    • sudo reboot
    • go versionssh

      go version go1.6 linux/amd64
相關文章
相關標籤/搜索