本系列安装实践文档,参考codis 官方安装说明文档
#安装编译相关工具
[root@localhost src]# yum -y install gcc git make autoconf
#安装 golang 1.5
#为了构建 Go 1.x (x ≥ 5),需要先安装 Go 1.4 到 $GOROOT_BOOTSTRAP.
默认的 $GOROOT_BOOTSTRAP 是 $HOME/go1.4.
我们使用 Go 1.4 作为启动的基础版本来编译工具链
#下载 go1.4.1.linux-amd64.tar.gz、go1.5.2.linux-amd64.tar.gz 到 /usr/local/src/
[root@localhost src]# pwd
/usr/local/src
[root@localhost src]# ls
go1.4.1.linux-amd64.tar.gz go1.5.2.linux-amd64.tar.gz
#解压、编译 go1.4
[root@localhost src]# tar zxvf go1.4.1.linux-amd64.tar.gz
[root@localhost src]# mv ./go ./go1.4
[root@localhost src]# bash ./go1.4/src/all.bash
#将 go1.4 拷贝到 $HOME 目录; 后续go1.5的编译 依赖于这个 $HOME/go1.4
[root@localhost src]# mv /usr/local/src/go1.4 $HOME/
#解压、编译go1.5
[root@localhost src] # tar zxvf go1.5.2.linux-amd64.tar.gz
[root@localhost src] # bash ./go/src/all.bash
#将go1.5 拷贝到 /usr/local目录
[root@localhost src] #mv /usr/local/src/go /usr/local
#设置环境变量
[root@localhost ~]# cd ~/
[root@localhost ~]# pwd
/root
[root@localhost ~]## cat >> ~/.bashrc << _bashrc_export
> export GOROOT=/usr/local/go
> export PATH=\$PATH:\$GOROOT/bin
> export GOARCH=amd64
> export GOOS=linux
> _bashrc_export
[root@localhost ~]# source ~/.bashrc
#新建 GOPATH 项目目录
[root@localhost ~] #mkdir -p /data/go
[root@localhost ~] #echo "export GOPATH=/data/go" >> ~/.bashrc
[root@localhost ~] # source ~/.bashrc
#检查go版本
[root@localhost ~] # go version
go version go1.5.2 linux/amd64
#下载 godep 的可执行程序
godep按网上教程安装,安装不成功的话,直接下载一个可以执行程序
[root@localhost codis]# godep version
godep v1 (linux/amd64/go1.4.2)
[root@localhost codis]# whereis godep
godep: /usr/local/bin/godep
#下载并编译codis(codis-config、codis-proxy、codis-server所在的机器)
[root@localhost ~] # cd /data/go/src/
[root@localhost src]# go get github.com/CodisLabs/codis
[root@localhost src]# cd /data/go/src/github.com/CodisLabs/codis/
[root@localhost codis]# make
#如果以上godep安装失败,这个时候只能自行获取相关的依赖包了 (网上提到的
bootstrap.sh 找不到,但内部应该就是获取这些依赖包 ,注意以下语句都是 "&" 结尾,方便后台并行执行,提高 获取依赖包的效率 )
[root@01367acca5ea go]# /usr/local/go/bin/go get github.com/BurntSushi/toml &
[root@01367acca5ea codis]# /usr/local/go/bin/go get github.com/coreos/etcd &
[root@01367acca5ea codis]# /usr/local/go/bin/go get github.com/garyburd/redigo/redis &
[root@01367acca5ea codis]# /usr/local/go/bin/go get github.com/go-martini/martini &
[root@01367acca5ea codis]# /usr/local/go/bin/go get github.com/influxdata/influxdb/client/v2 &
[root@01367acca5ea codis]#/usr/local/go/bin/go get github.com/martini-contrib/binding &
[root@01367acca5ea codis]#/usr/local/go/bin/go get github.com/martini-contrib/gzip &
[root@01367acca5ea codis]#/usr/local/go/bin/go get github.com/martini-contrib/render &
[root@01367acca5ea codis]#/usr/local/go/bin/go get github.com/samuel/go-zookeeper/zk &
[root@01367acca5ea codis]#/usr/local/go/bin/go get github.com/spinlock/jemalloc-go &
[root@01367acca5ea codis]#/usr/local/go/bin/go get github.com/docopt/docopt-go &
# make 报错 找不到 jemalloc.h, 可以另行 安装;
到官网下载 jemalloc-4.2.1.tar.gz,上传到 容器, 然后 configure, make , make install
#到此 编译应该能通过了
#查看版本号
[root@01367acca5ea codis]# git status
# On branch release3.1