-
golang >= 1.17
-
python >= 2.7.5
注:尽量使用 python2 环境编译,python3 有可能导致脚本运行失败
-
nodejs >= 4.0.0(编译过程中需要可以连公网下载依赖包)
-
铜锁 8.3.2 版本
因为 cloud-server 使用了 crypto-golang-sdk ,所以需要安装铜锁环境并设置环境变量进行编译。参考文档:crypto-golang-sdk
Makefile 里内置了安装 8.3.2 版本铜锁环境的步骤,默认安装路径为${cmdb编译路径}/tongsuo
,可以通过设置TONGSUO_PATH
环境变量指定该安装路径
注:最好使用nodejs14 LTS版本,如14.13.1、14.18.1、14.21.3
go env -w GO111MODULE="auto"
git clone https://github.com/TencentBlueKing/bk-cmdb configcenter
# clone 速度较慢或超时建议配置代理:
git config --global http.proxy IP:PORT
git config --global https.proxy IP:PORT
cd configcenter
go mod tidy
# go依赖下载失败或超时建议修改代理:
go env -w GOPROXY=https://goproxy.cn,direct
go mod是Golang的包管理工具,若没有开启,可以进行下面操作:
go env -w GO111MODULE="auto"
或
go env -w GO111MODULE="on"
cd configcenter/src
编译过程中如果需要特别指定版本号需要加入以下参数:
make VERSION=xxxx
注:xxx需要替换为需要需要指定的版本号
make
大陆地区用户推荐使用npm镜像cnpm进行前端编译,cnpm安装参考cnpmjs.org,编译时需要采用以下命令:
make NPM=cnpm
注:使用其他npm镜像与此类似
此模式编译后会同时生成前端UI文件和后端服务文件。
make server
此模式下仅会编译生成后端服务文件。
make ui
大陆地区用户推荐使用npm镜像cnpm进行前端编译,cnpm安装参考cnpmjs.org,编译时需要采用以下命令:
make ui NPM=cnpm
注:使用其他npm镜像与此类似
此模式下仅会编译生成前端UI文件。
make package
归档包存放位置: configcenter/src/bin/pub/cmdb.tar.gz
解压cmdb.tar.gz,进入cmdb目录执行以下命令:
./image.sh -i <base_image>
示例:
./image.sh -i linux:latest
注:-i 参数后面配置的参数是基础镜像,基础镜像可以自己制作,也可以使用公共镜像。
clone 速度较慢或超时建议配置代理:
git config --global http.proxy IP:PORT
git config --global https.proxy IP:PORT
git config --global --list//查看全局代理配置
尽量使用 python2 环境编译,python3 有可能导致脚本运行失败;
当系统同时存在安装了 python2 和 python3 时,编译脚本可能会报错 Failed: Command 'python' not found
,想在执行python
命令时自动执行Python 2.x版本,可以按照以下步骤进行配置:(Ubuntu系统,其它系统可自行查找)
- 确认Python 2.x已经安装:首先请确保已经在Ubuntu中安装了Python 2.x版本。
- 使用
update-alternatives
设置优先级:Ubuntu提供了update-alternatives
命令,可以用于管理系统中的可选命令。使用该命令来设置Python版本优先级:
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1
上述命令将Python 2 设置为优先级为1的备选项,这将使python
命令自动关联到Python 2.x版本。/usr/bin/python2
为python2
文件目录
go env
命令检查go环境
//开启包管理工具
go env -w GO111MODULE="on"
//配置代理
go env -w GOPROXY=https://goproxy.cn,direct
最好使用nodejs14 LTS版本,如:14.13.1、14.18.1、14.21.3
npm ERR! code ELIFECYCLE
npm ERR! syscall spawn
npm ERR! file sh
npm ERR! errno ENOENT
npm ERR! [email protected] install: 'node build.js || nodejs build.js'
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above
npm ERR! A complete log of this run can be found in:/root/.npm/_logs/2023-07-31T12_06_25_972Z-debug.log
或
> fibers@5. 0.3 install /root/configcenter/src/ui/node_modules/fibers
> node build.js || nodejs build.js
internal/modules/cjs/loader.js:883
throw err;
Error: Cannot find module '/root/configcenter/src/ui/node_modules/fibers/build.js'
at Function.Module.resolveFilename (internal/modules/cjs/loader.js:880:15)
at Function.Module._load (internal/ modules/cjs/loader.js:725:27)
at Function . executeUserEntryPoint [as runMain] ( internal/ modules/run_ main. js:72:12)
at internal/main/run_main module.js:17:47 {
code: 'MODULE_ NOT_ FOUND',
requireStack: []
}
sh: 1: nodejs: Permission denied
解决办法:
1、检查主机内存是否充足,编译时内存不足可能会导致编译失败
2、安装 nvm 工具,通过 nvm 工具安装 nodejs
- 终端执行 git
git clone https://github.com/creationix/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`
- 回到root目录执行,编辑环境变量配置文件
cd ~
vim .bashrc
将
source ~/.nvm/nvm.sh
写入环境变量配置文件并保存退出
- 执行
source .bashrc
和
nvm -v //查看nvm版本号
显示版本号即安装nvm成功
nvm ls-remote //查看能够使用的node版本号
- 这里选择了 v14.21.3,使用 nvm 命令来安装,而且将其设置为默认版本号。 分别执行:
nvm install 14.21.3
nvm alias default 14.21.3
- 安装好的 nodejs 中是默认安装 npm 的,接着
vim .bashrc
打开环境变量配置文件查看是否有以下两句
export NVM_DIR="/Users/YOURUSERNAME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
没有加上后保存退出执行 source .bashrc
- 重新打开一个终端分别执行:成功输出版本号即可
root@LAPTOP-0RIAHE03:~# nvm -v
0.39.4
root@LAPTOP-ORIAHE03:~# node -v
V14.21.3
root@LAPTOP-ORIAHE03:~# npm -V
6.14.18
- 再次进入项目src目录执行
make ui
进行编译,编译成功查看相应输出目录
- 查看 cmdb项目issues地址 ,寻找相同或类似问题的解决办法
- 您也可以创建issue, 带上版本号+错误日志文件+配置文件等信息,我们看到后,会第一时间为您解答;
- 同时我们也鼓励,有问题互相解答,提PR参与开源贡献,共建开源社区。