zoukankan      html  css  js  c++  java
  • 如何在没有代理的情况下编译 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;

  • 相关阅读:
    为TextBox定义快捷键
    (转)再谈“我是怎么招聘程序员的”
    (转)jQuery框架学习第二天:jQuery中万能的选择器
    (转)MongoDB学习笔记(一) MongoDB介绍及安装
    asp.net 导出CSV
    领域驱动设计下系统层次结构风格(转载)
    (转)谈谈数据加密的处理提供各种算法处理
    (转)REST服务开发实战
    领域驱动设计系列文章(2)——浅析VO、DTO、DO、PO的概念、区别和用处
    (转)你的工作不是命令人们去做什么
  • 原文地址:https://www.cnblogs.com/lijingshanxi/p/10890232.html
Copyright © 2011-2022 走看看