Skip to content

Instantly share code, notes, and snippets.

@shwoodard
Forked from anonymous/install-go
Created May 28, 2017 13:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save shwoodard/ba67f46b6beddb95d011fba4471dbc69 to your computer and use it in GitHub Desktop.
Save shwoodard/ba67f46b6beddb95d011fba4471dbc69 to your computer and use it in GitHub Desktop.
Install go from src. Usage bin/install-go <version>
#!/bin/bash
set -ex
TMP_DIR=`pwd`/tmp
BUILD_DIR=$TMP_DIR/build
BUILD_GO_DST=$HOME/opt/lang/go1.4
FINAL_GO_DST=$HOME/opt/lang/go$1
rm -rf $TMP_DIR
mkdir -p $TMP_DIR && cd $TMP_DIR
curl -O https://storage.googleapis.com/golang/go1.4-bootstrap-20161024.tar.gz
tar xzvf go1.4-bootstrap-20161024.tar.gz
cd $TMP_DIR/go/src
GOROOT_FINAL=$BUILD_GO_DST ./make.bash
cd $TMP_DIR
rm -rf $BUILD_GO_DST
mv $TMP_DIR/go $BUILD_GO_DST
rm -rf $BUILD_DIR
mkdir -p $BUILD_DIR/go/$1
cd $BUILD_DIR/go/$1
git clone -b go$1 --single-branch --depth 1 https://go.googlesource.com/go
cd $BUILD_DIR/go/$1/src
GOROOT_FINAL=$FINAL_GO_DST \
GOROOT_BOOTSTRAP=$BUILD_GO_DST \
./make.bash
rm -rf $FINAL_GO_DST
mkdir -p $FINAL_GO_DST
cd $BUILD_DIR/go/$1
find . -not -path '*/\.*' | cpio -pdum $BUILD_GO_DST
rm -rf $BUILD_DIR
rm -f $HOME/opt/lang/go
ln -nfs $HOME/opt/lang/go{$1/,}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment