一、Go环境的安装

1、下载地址 https://golang.org/dl/
2、解压 tar -zxvf go1.7.1.linux-amd64.tar.gz -C /usr/local
3、修改配置文件
   vi /etc/profile
    export GOROOT=/usr/local/go
    export GOPATH=/usr/local/data/go
    export PATH=$PATH:$GOROOT/bin:$GOPATH

4、查看安装完成
  go version
详细文档查看:https://golang.org/doc/install

二、编译codis源码

  (1)、安装go环境 检查环境
    go version
    (2)、设置编译环境
    注意 $GOPATH 是本机所有第三方库 go 项目所在目录,Codis 仅是其中之一。
    添加 $GOPATH/bin 到 $PATH,例如:PATH=$PATH:$GOPATH/bin,并安装 godep 工具。
    $ go env GOPATH
      /usr/local/data/g

    安装godep方法:
      下载godep源码:https://github.com/tools/godep
      mkdir $GOPATH/src/github.com/tools/godep
      将 godep 目录移动到 $GOPATH/src/github.com/tools/godep,并进入该目录;
      运行命令 go install ./,该命令会将 godep 生成到 $GOPATH/bin 下。

(3)、编译codis
    下载 Codis 源代码 https://github.com/CodisLabs/codis/releases
    Codis 源代码需要下载到 $GOPATH/src/github.com/CodisLabs/codis:
    $ mkdir -p $GOPATH/src/github.com/CodisLabs
    $ cd $GOPATH/src/github.com/CodisLabs
    将源码下载后上传到该目录 并重命名为codis
    $ cd $GOPATH/src/github.com/CodisLabs/codis
    $ make
    看到如下效果:

make -j -C extern/redis-2.8.21/
... ...
go build -i -o bin/codis-dashboard ./cmd/dashboard
go build -i -o bin/codis-proxy ./cmd/proxy
go build -i -o bin/codis-admin ./cmd/admin
go build -i -o bin/codis-ha ./cmd/ha
go build -i -o bin/codis-fe ./cmd/fe

  

$ ls bin/
total 69124
   drwxr-xr-x 4 codis codis 4096 Jan 4 14:55 assets
   -rwxr-xr-x 1 codis codis 17600752 Jan 4 14:55 codis-admin
   -rwxr-xr-x 1 codis codis 18416320 Jan 4 14:55 codis-dashboard
   -rwxr-xr-x 1 codis codis 9498040 Jan 4 14:55 codis-fe
   -rwxr-xr-x 1 codis codis 9956328 Jan 4 14:55 codis-ha
   -rwxr-xr-x 1 codis codis 11057280 Jan 4 14:55 codis-proxy
   -rwxr-xr-x 1 codis codis 4234432 Jan 4 14:55 codis-server
   -rw-r--r-- 1 codis codis 148 Jan 4 14:55 version
   ... ...

$ cat bin/version
  version = 2016-01-03 14:53:22 +0800 @51f06ae3b58a256a58f857f590430977638846a3
  compile = 2016-01-04 15:00:17 +0800 by go version go1.5.2 linux/amd64

(4)该编译成功的codis即可安装
  tar -zcvf codis3.1.3-go1.7.4-linux.tar.gz codis

Codis的源码编译生成tar包的更多相关文章

  1. 转】MyEclipse使用总结——使用MyEclipse打包带源码的jar包

    原博文出自于: http://www.cnblogs.com/xdp-gacl/p/4136303.html 感谢! 平时开发中,我们喜欢将一些类打包成jar包,然后在别的项目中继续使用,不过由于看不 ...

  2. MyEclipse使用总结——使用MyEclipse打包带源码的jar包

    平时开发中,我们喜欢将一些类打包成jar包,然后在别的项目中继续使用,不过由于看不到jar包里面的类的源码了,所以也就无法调试,要想调试,那么就只能通过关联源代码的形式,这样或多或少也有一些不方便,今 ...

  3. eclipse导出附带源码的jar包

    最近在搞Andengine游戏开发,发现andengine的jar包可以直接点击查看源码,而其他项目的jar包却看不了,因此自己研究了下如何生成可以直接查看源码的jar包. 1.eclipse中点击项 ...

  4. MyEclipse打包带源码的jar包

    平时开发中,我们喜欢将一些类打包成jar包,然后在别的项目中继续使用,不过由于看不到jar包里面的类的源码了,所以也就无法调试,要想调试,那么就只能通过关联源代码的形式,这样或多或少也有一些不方便,今 ...

  5. Eclipse使用总结——使用Eclipse打包带源码的jar包

    平时开发中,我们喜欢将一些类打包成jar包,然后在别的项目中继续使用,不过由于看不到jar包里面的类的源码了,所以也就无法调试,要想调试,那么就只能通过关联源代码的形式,这样或多或少也有一些不方便,今 ...

  6. 源码生成deb包

    方法一 源码包要求是使用 automake 进行编译管理的. 安装路径不能指定为 /usr/local 下的目录,否则生成 deb 包期间报错. 制作的工具是 dh-make ,如果没有安装,要先安装 ...

  7. Android 如何在Eclipse中查看Android API源码 及 support包源码

    当我们阅读android API开发文档时候,上面的每个类,以及类的各个方法都是已经写好的方法和控件,可是我们只是在搬来使用,不知道它的原理,它是如何被实现的.android系统是开源的,所以谷歌官方 ...

  8. 修改FFMpeg源码—捕获丢包

    概述 最近我们项目有一个需求就是解决客户端播放RTSP视频流花屏的问题,一般来说丢包就会引起花屏,导致客户端花屏的因素又有很多,比如说: 相机到服务器丢包 服务器到客户端丢包 等等... 其中服务器到 ...

  9. 【转】Android 如何在Eclipse中查看Android API源码 及 support包源码

    原文网址:http://blog.csdn.net/vipzjyno1/article/details/22954775 当我们阅读android API开发文档时候,上面的每个类,以及类的各个方法都 ...

随机推荐

  1. 精通CSS高级Web标准解决方案(6、对表单与表格应用样式)

    使用fieldset input[type="text"] { width:200px; } input:focus,textarea:focus{background:#ffc; ...

  2. STL之vector使用简介

    Vector成员函数 函数 表述 c.assign(beg,end)c.assign(n,elem) 将[beg; end)区间中的数据赋值给c.将n个elem的拷贝赋值给c. c.at(idx) 传 ...

  3. Linux下如何挂载和卸载硬盘?

    fdisk -l 查看所有被系统识别的磁盘 df -h 查看磁盘占用情况 sudo umount -v /media 卸载挂载点的硬件 df -T 查看所有磁盘的文件系统类型(type) mount ...

  4. html5中checkbox的选中状态的设置与获取

    获取checkbox是否选中: $("#checkbox").is(":checked"); 获得的值为true或false. 设置checkbox是否选中: ...

  5. hdu6136[模拟+优先队列] 2017多校8

    有点麻烦.. /*hdu6136[模拟+优先队列] 2017多校8*/ #include <bits/stdc++.h> using namespace std; typedef long ...

  6. nodeJS学习(4)--- webstorm/...开发 NodeJS 项目-节1

    前提: 已安装好 IDE ,eg:webstorm/IDEA 2016.3 & 2017.1 nodeJS(含 npm 及 相应的模板等) 要用 webstorm 开发 NodeJS项目(we ...

  7. 上传相同文件名的时候不能触发change事件的解决方案

    方法一 在上传完文件之后,将<input type="file" /> 的值置为null,即可. 方法二 在上传完文件之后替换dom 方法三 在上传完文件之后刷新页面

  8. [LeetCode] Length of Last Word 字符串查找

    Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the l ...

  9. eclipse集成JBPM

    JBPM4.4是一款运用的比较广泛的工作流开发框架,最近参与的BSS项目里面也有用到了JBPM4.4.自己在已经搭建的框架下使用,但更详细的理解并没有.因此借此机会学习一下. 学习版本为:JBPM为4 ...

  10. wireshark过滤数据

    Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换.用来获取网络数据封包,包括http,TCP,UDP,等网络协议包.使用者可以以免费的代价取得软件与其源代码,并拥有针对其源代码 ...