vitess build on mac

_金科 · · 896 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

两个步骤,1.环境准备 2.编译安装

Envrionment Prepare

  1. Install Homebrew. If your /usr/local directory is not empty and you haven't yet used Homebrew, you need to run the following command:

    sudo chown -R $(whoami):admin /usr/local
    
  2. If Xcode is installed (with Console tools, which should be bundled
    automatically since version 7.1), all the dev dependencies should be satisfied in this step. If Xcode isn't present, you'll need to install pkg-config.

    brew install pkg-config
    
  3. Install etcd v3.0+. Remember to include etcd command on your path.

  4. Run the following commands:

    brew install go ant automake libtool python git bison curl wget mysql57
    pip install --upgrade pip setuptools
    pip install virtualenv
    pip install MySQL-python
    pip install tox
    
  5. The Vitess bootstrap script makes some checks for the go runtime, so it is recommended to have the following commands in your ~/.profile, ~/.bashrc, ~/.zshrc, or ~/.bash_profile:

    export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"
    export PATH=/usr/local/go/bin:$PATH
    export GOROOT=/usr/local/go
    
  6. For the Vitess hostname resolving functions to work correctly, a new entry has to be added into the /etc/hosts file with the current LAN IP address of the computer (preferably IPv4) and the current hostname, which you get by typing the 'hostname' command in the terminal.

    It is also a good idea to put the following line to force the Go DNS resolver in your ~/.profile or ~/.bashrc or ~/.zshrc:

    export GODEBUG=netdns=go
    

Build Vitess

  1. Navigate to the directory where you want to download the Vitess source code and clone the Vitess Github repo. After doing so, navigate to the src/vitess.io/vitess directory.

    cd $WORKSPACE
    git clone https://github.com/vitessio/vitess.git \
        src/vitess.io/vitess
    cd src/vitess.io/vitess
    
  2. Set the MYSQL_FLAVOR:

# It is recommended to use MySQL56 even for MySQL 5.7 and 8.0. For MariaDB you can use MariaDB:
export MYSQL_FLAVOR=MySQL56
  1. If your selected database installed in a location other than /usr/bin, set the VT_MYSQL_ROOT variable to the root directory of your MySQL installation:

    # For generic tarballs on Linux
    export VT_MYSQL_ROOT=/usr/local/mysql
    
    # On macOS with Homebrew
    export VT_MYSQL_ROOT=/usr/local/opt/mysql@5.7
    

    Note that the command indicates that the mysql executable should be found at /usr/local/opt/mysql@5.7/bin/mysql.

  2. Run mysqld --version and confirm that you are running MySQL 5.7.

  3. Build Vitess using the commands below. Note that the bootstrap.sh script needs to download some dependencies. If your machine requires a proxy to access the Internet, you will need to set the usual environment variables (e.g. http_proxy, https_proxy, no_proxy).

    Run the boostrap.sh script:

    BUILD_TESTS=0 ./bootstrap.sh
    ### example output:
    # skipping zookeeper build
    # go install golang.org/x/tools/cmd/cover ...
    # Found MariaDB installation in ...
    # creating git pre-commit hooks
    #
    # source dev.env in your shell before building
    
    # Remaining commands to build Vitess
    source ./dev.env
    make build
    

遇到的问题:

环境准备部分:

  1. 不用先下载etcd,后面执行bootstrap脚本会安装

  2. brew install go ant automake libtool python git bison curl wget mysql57

    先执行

    brew install go ant automake libtool git bison curl wget
    单独执行brew install mysql@57

    如果没有python,单独执行brew install python@2

  3. pip install --user tox

    报错:ERROR: matplotlib 1.3.1 requires nose, which is not installed.
    ERROR: matplotlib 1.3.1 requires tornado, which is not installed.

    执行

    pip install nose

    pip install tornado

编译安装的问题:

  1. bootstrap.sh执行安装zookeeper时
compile-test:
    [mkdir] Created dir: /Users/xiejinke1/Projects/gopath/dist/vt-zookeeper-3.4.14/zookeeper-3.4.14/build/test/classes
    [javac] Compiling 170 source files to /Users/xiejinke1/Projects/gopath/dist/vt-zookeeper-3.4.14/zookeeper-3.4.14/build/test/classes
    [javac] 警告: [options] 未与 -source 1.6 一起设置引导类路径
    [javac] 注: 某些输入文件使用或覆盖了已过时的 API。
    [javac] 注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。
    [javac] 注: /Users/xiejinke1/Projects/gopath/dist/vt-zookeeper-3.4.14/zookeeper-3.4.14/zookeeper-server/src/test/java/org/apache/zookeeper/test/LoadFromLogNoServerTest.java使用了未经检查或不安全的操作。
    [javac] 注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。
    [javac] Compiling 11 source files to /Users/xiejinke1/Projects/gopath/dist/vt-zookeeper-3.4.14/zookeeper-3.4.14/build/test/classes
    [javac] 警告: [options] 未与 -source 1.6 一起设置引导类路径
    [javac] 注: /Users/xiejinke1/Projects/gopath/dist/vt-zookeeper-3.4.14/zookeeper-3.4.14/zookeeper-it/src/test/java/org/apache/zookeeper/test/system/InstanceContainer.java使用了未经检查或不安全的操作。
    [javac] 注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。

本机配置JDK1.8版本,参考:https://www.jianshu.com/p/072981dc9cc2

  1. govendor sync时
Updating govendor dependencies...
# cd .; git clone https://github.com/aws/aws-sdk-go /Users/xiejinke1/Projects/gopath/.cache/govendor/github.com/aws/aws-sdk-go
正克隆到 '/Users/xiejinke1/Projects/gopath/.cache/govendor/github.com/aws/aws-sdk-go'...
error: RPC 失败。curl 18 transfer closed with outstanding read data remaining
fatal: 远端意外挂断了
fatal: 过早的文件结束符(EOF)
fatal: index-pack 失败

手动

git clone https://github.com/coreos/etcd $GOPATH/src/github.com
git clone https://github.com/aws/aws-sdk-go $GOPATH/src/github.com
git clone https://code.googlesource.com/google-api-go-client $GOPATH/src/google.golang.org/api

由于执行到这个步骤由于墙或者代码已经移动到github.com中,可以手动执行govendor sync -v 查看govendor在fetch什么,缺什么提前补充好。加快执行速度。

如果执行git clone 下载不下来,参考 https://www.jianshu.com/p/bb16ea7afdda 给git配置一个代理


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:_金科

查看原文:vitess build on mac

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

896 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传