最简编译CockroachDB 21.2
编译CockroachDB比较麻烦,尤其是从git下载代码编译还需要关联项目的下载,本文整理从官网下载代码的编译过程,非常简单,几乎没有异常,供大家参考。
编译CockroachDB 21.2
1、安装Centos 8.5 虚拟机
- 服务器类型选择Server,在软件包集合中选中“Performance Tools”和“Development Tools”
- 设置网络并启动网络时间服务
- 设置ISO文件为软件源
- 简化安全选项:关闭和禁用firewalld服务,禁用selinux
2、准备开发环境
2.1、安装go开发环境
从go官网 https://golang.google.cn/dl/ 下载最新go版本 1.17.3
tar -xf tools/go1.17.3.linux-amd64.tar.gz -C .
编辑 .bash_profile 设置环境变量
export GOROOT=$HOME/go
export GOBIN=$HOME/go/bin
export GOPATH=$HOME/works
export PATH=$HOME/works/src/github.com/cockroachdb/cockroach/:$GOBIN:$PATH
export GOPROXY=https://goproxy.io,direct
export GOARCH=amd64
export CGO_ENABLED=1
执行source .bash_profile后验证
$ go version
go version go1.17.3 linux/amd64
2.2、安装go 调试工具
下载对应go 1.17的delve工具
2.3、安装nodejs和yarn
cockroachdb自带http服务,编译时需要nodejs和yarn,ISO中带有NodeJs,也可以从镜像站点下载最新版本并安装,如:
https://mirrors.aliyun.com/centos/8-stream/AppStream/x86_64/os/Packages/nodejs-16.8.0-1.module_el8.6.0+928+039f010b.x86_64.rpm
https://mirrors.aliyun.com/centos/8-stream/AppStream/x86_64/os/Packages/nodejs-docs-16.8.0-1.module_el8.6.0+928+039f010b.noarch.rpm
https://mirrors.aliyun.com/centos/8-stream/AppStream/x86_64/os/Packages/nodejs-full-i18n-16.8.0-1.module_el8.6.0+928+039f010b.x86_64.rpm
https://mirrors.aliyun.com/centos/8-stream/AppStream/x86_64/os/Packages/npm-7.21.0-1.16.8.0.1.module_el8.6.0+928+039f010b.x86_64.rpm
注:如果下载404失败,一般是版本更新了,打开网页https://mirrors.aliyun.com/centos/8-stream/AppStream/x86_64/os/Packages/,更正链接即可
验证
$node --version
v16.8.0 $npm --version
7.21.0
设置代理
$npm config set registry http://registry.npm.taobao.org/
验证
$npm get registry
http://registry.npm.taobao.org/
安装yarn
$npm install -g yarn
安装
$yarn --version
1.22.17
设置yarn代理
$yarn config set registry http://registry.npm.taobao.org/
验证
$yarn config get registry
http://registry.npm.taobao.org/
2.4、安装其他依赖库
yum install cmake ncurses-devel -y
3、编译cockroachdb源码
3.1、准备源码
为了避免从github下载各种依赖包的麻烦,采用从官网下载源码编译
https://binaries.cockroachdb.com/cockroach-v21.2.0.src.tgz
tar -xf ~/tools/cockroach-v21.2.0.src.tgz -C ~/works/
cd works
mv cockroach-v21.2.0/* .
rm cockroach-v21.2.0 -rf
3.2、编译
cockroach-v21.2.0 首次编译时不会编译ui,最简单的方式就touch ui下的随便一个文件就好
cd src/github.com/cockroachdb/cockroach
touch pkg/ui/workspaces/db-console/src/app.tsx
然后编译
make build
简单验证
$cockroach version
Build Tag: v21.2.0
Build Time: 2021/11/21 07:09:43
Distribution: CCL
Platform: linux amd64 (x86_64-redhat-linux)
Go Version: go1.17.3
C Compiler: gcc 8.5.0 20210514 (Red Hat 8.5.0-3)
Build Commit ID: 79e5979416cb426092a83beff0be1c20aebf84c6
Build Type: development
单元测试
make test
在编译的最后生成文档节点会报:fatal: not a git repository (or any of the parent directories): .git
在单元测试中有几个用例会报错,也是git原因,还有就是作者邮箱不匹配,都可忽略,放心下一步探索即可。
最简编译CockroachDB 21.2的更多相关文章
- clang8.0及以上编译rocks问题
升级了MacOS 10.15 Beta版,结果编译 CockroachDB 遇到了问题. [ %] Building CXX object CMakeFiles/rocksdb.dir/db/buil ...
- opencv 相关一个很好的博客
http://blog.csdn.net/zouxy09/article/category/1218765 图像卷积与滤波的一些知识点 图像卷积与滤波的一些知识点zouxy09@qq.comhttp: ...
- 《深入理解Android内核设计思想》
<深入理解Android内核设计思想> 基本信息 作者: 林学森 出版社:人民邮电出版社 ISBN:9787115348418 上架时间:2014-4-25 出版日期:2014 年5月 开 ...
- 本书版权输出到台湾地区,《深入理解Android内核设计思想》诚挚感谢大家一直以来的支持!
- Atitit.attilax软件研发与项目管理之道
Atitit.attilax软件研发与项目管理之道 1. 前言4 2. 鸣谢4 3. Genesis 创世记4 4. 软件发展史4 5. 箴言4 6. 使徒行传 4 7. attilax书 4 8. ...
- Java虚拟机3:常用JVM命令参数
之后写的东西就会用到虚拟机参数了,现在这里汇个总自己平时用到的.看到的一些虚拟机参数.现在看不懂没关系,反正之后都会用到的: (1)-Xms20M 表示设置堆容量的最小值为20M,必须以M为单位 (2 ...
- Unity3D所使用的第三方工具
前言 最近在研究Unity3D的结构和原理.关于Unity3D怎么用之类的教程在网上一找一大堆,想看教程之类的就不用看这篇文章了.我想做的是从使用Unity3D所看到的表象(表),摸透其设计原则和组织 ...
- 《Cocos2d-x实战 C++卷》上线了-源码-样章-感谢大家的支持
<Cocos2d-x实战 C++卷>上线了 感谢大家一直以来的支持! 全面介绍Cocos开发技巧,采用Cocos2d-x3.2版本,并且详细介绍跨平台移植已经多平台发布细节. · 各大商店 ...
- Debian 7 安装 Emacs 24.3
Emacs 24.3出来好久了,但是在Debian 7里还是Emacs 23的版本. 以下是安装步骤(9步): -dev libncurses5-dev autoconf automake texin ...
- Codeforces Round #232 (Div. 1)
这次运气比较好,做出两题.本来是冲着第3题可以cdq分治做的,却没想出来,明天再想好了. A. On Number of Decompositions into Multipliers 题意:n个数a ...
随机推荐
- Proxmark3入门指南
Proxmark3笔记 --Proxmark3完全入门指南 写在前面 这里所有针对扇区.区块的计数都是从0开始算 一些需要知道的知识 为了能看懂笔记,需要能回答以下问题 ID卡和IC卡主要的区别是什么 ...
- 基于Python的子进程获取键盘输入
一 概念 众所周知,python中的获取键盘输入,input函数是没办法用在子程序的,这就限制了它的用途.想要在子程序中获取键盘输入.唯有 fn=sys.stdin.fileno函数了. 二 实例解析 ...
- 生成文件名为系统时间的C源码实例
一 最近遇到了一个需要根据时间记录文件名的.先写一个实例来实战: #include<stdlib.h> #include<time.h> #include<stdio.h ...
- day03-功能实现03
功能实现03 9.功能08-分页显示 9.1需求分析 将查询的数据进行分页显示,要求功能如下: 显示共多少条记录 可以设置每页显示几条 点击第几页,显示对应的数据 9.2思路分析 后端使用MyBati ...
- 投屏项目中Sink端CPU占用过高问题
一.背景 今天来总结一下,自己在项目中遇到的一个CPU占用过高的问题,详细的结束从发现到定位在到解决问题的过程. 原因是性能测试那边提出了一个bug,就是在投屏过程中,平板端也就是Sink端功耗非常高 ...
- vite中配置less,vue3中配置less
前言 如果赶时间请直接使用目录跳到解决问题的部分. 使用的项目使用vue脚手架生成. npm init vue@latest 版本如下 "@vitejs/plugin-vue": ...
- CSS(三大特性、盒子模型的组成(boder、padding、margin)、ps基本操作)
一.css三大特性 1.层叠性 相同选择器给设置相同的样式,此时一个样式就会覆盖(层叠)另一个冲突的样式.层叠性主要解决样式冲突的问题 层叠性原则: 样式冲突,遵循的原则是就近原则,哪个样式离结构近, ...
- MySQL varchar详解
说明:以下结果都是在mysql8.2及Innodb环境下测试. varcahr(255)是什么含义? varchar(255) 表示可以存储最大255个字符,至于占多少个字节由字符集决定. varch ...
- OpenLayers 点击显示经纬度Demo
这里给大家分享我在OpenLayers 地图开发工作中总结出的一下代码和注意点,希望对大家有所帮助 效果如下: 核心代码展示:附带讲解注释 var map = new ol.Map({ // 初始化地 ...
- 记录--微信小程序跳转H5、小程序、App
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 在业务中接触了微信小程序,客户对引流用户非常在意,每次都会提该需求,经常做就存档一下.使用的小程序账户都是企业版非个人版本. 跳转H5 在 ...