• 如何在没有代理的情况下编译 tidb server


    这里主要介绍 tidb server 的编译, ti kv 和 ti pd 的编译不在本文范围内;

    go 语言 1.11 版本之后支持 go.mod,  依赖包在 go.mod 里生成, 如果 go.mod 中某个依赖包在 golang.org 上, 下载和编译依赖包会出错,因为 go 语言的官网 golang.org 在大陆无法访问, 我们可以用 replace 语法来替换依赖包的路径, 手工修改 go.mod 文件, 用 github 上的镜像代替;

    例如:

    require (

        ......

        golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e

        ......

    replace (

        golang.org/x/net => github.com/golang/net v0.0.0-20190108225652-1e06a53dbb7e

    )

    红色部分是依赖包的版本号, 需要和 require 里面的包版本号一致;

    假设我们的 tidb server 的代码在 $GOPATH/xxx/github.com/pingcap/tidb/ 目录;

    用 notepad++ 打开 $GOPATH/xxx/github.com/pingcap/tidb/  下的 go.mod, 在后面直接添加:

    replace (

        go.uber.org/atomic v1.3.2 => github.com/uber-go/atomic v1.3.2

        go.uber.org/zap v1.9.1 => github.com/uber-go/zap  v1.9.1

        golang.org/x/net => github.com/golang/net v0.0.0-20190108225652-1e06a53dbb7e

        golang.org/x/sys => github.com/golang/sys v0.0.0-20190109145017-48ac38b7c8cb

        golang.org/x/text => github.com/golang/text v0.3.0

        golang.org/x/time => github.com/golang/time v0.0.0-20190308202827-9d24e82272b4

        golang.org/x/tools => github.com/golang/tools v0.0.0-20190130214255-bb1329dc71a0

        golang.org/x/lint => github.com/golang/lint v0.0.0-20181026193005-c67002cb31c3

        golang.org/x/sync => github.com/golang/sync v0.0.0-20181221193216-37e7f081c4d4

        golang.org/x/oauth2 => github.com/golang/oauth2 v0.0.0-20180821212333-d2e6202438be

        golang.org/x/crypto => github.com/golang/crypto v0.0.0-20180904163835-0709b304e793

        google.golang.org/genproto => github.com/google/go-genproto v0.0.0-20190108161440-ae2f86662275

        google.golang.org/grpc => github.com/grpc/grpc-go v1.17.0

        google.golang.org/appengine => github.com/golang/appengine v1.1.0

        cloud.google.com/go => github.com/googleapis/google-cloud-go v0.26.0

    )

    添加之后执行 make, 成功;

    启动一个 tidb-server:

    用 mysql 客户端连接一下:

    OK

    我环境里的 go 语言版本是 1.12;  系统是 centos;

  • 相关阅读:
    Panorama和Pivot的区别
    Windows phone 全景视图
    在usercontrol里实现导航
    (App.Current.RootVisual as PhoneApplicationFrame).Navigate(new Uri("/MainPage.xaml", UriKind.Relative));
    Windows phone重写返回键
    Windows Phone 8弹窗
    Kotlin 区间的一些小注意
    Kotlin 区间和循环 Loop和Range
    Kotlin when 流程判断
    Kotlin 在kotlin内使用Java的一些注意(长篇)
  • 原文地址:https://www.cnblogs.com/lijingshanxi/p/10890232.html
Copyright © 2020-2023  润新知