简单记录一下在openeuler系统里源码编译kibana,期间也踩了不少坑,仅供大家参考。
一、编译环境
kibana版本:7.8.1
华为云kc1_large 2核4G 40G硬盘 openEuler 20.03 (LTS)系统
有条件的话内存可以提升为8G,因为内存不足编译的时候会遇到各种意想不到的问题
二、安装依赖包
需要安装gcc-c++, make, openjdk, ruby, rpm-build, git
yum install rpm-build gcc-c++ make ruby
gem install fpm -v 1.5.0 打包的时候要用到fpm(依赖的ruby版本不宜过低,建议 openeuler默认的2.5版本就可以)
系统git版本不宜过低否则编译会出错, 建议用2.23.0
三、利用nvm管理工具安装node、yarn,可参考https://github.com/nvm-sh/nvm
四、修改代码部分
1) src/dev/build/lib/config.js文件
修改前:
const platforms = ['darwin', 'linux', 'windows'].map(createPlatform);
修改后:
const platforms = ['linux'].map(createPlatform);
2) src/dev/build/lib/platform.js文件
修改前:
getNodeArch() {
return `${name}-x64`;
}
getBuildName() {
return `${name}-x86_64`;
}
修改后:
getNodeArch() {
return `${name}-arm64`;
}
getBuildName() {
return `${name}-aarch64`;
}
3) src/dev/build/tasks/os_packages/create_os_package_tasks.js文件
修改前:
async run(config, log, build) {
await runFpm(config, log, build, 'rpm', [
'--architecture', 'x86_64',
'--rpm-os', 'linux'
]);
}
修改后:
async run(config, log, build) {
await runFpm(config, log, build, 'rpm', [
'--architecture', 'aarch64',
'--rpm-os', 'linux'
]);
}
4) src/dev/ci_setup/setup_env.sh文件
修改前:
nodeUrl="https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache/dist/v$nodeVersion/node-v$nodeVersion-${OS}-${classifier}"
修改后:
nodeUrl="https://npm.taobao.org/mirrors/node/v$nodeVersion/node-v$nodeVersion-${OS}-${classifier}"
5) src/dev/build/tasks/nodejs/node_download_info.js文件
修改前:
const url = `https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache/dist/v${version}/${downloadName}`;
修改后:
const url = `https://npm.taobao.org/mirrors/node/v${version}/${downloadName}`;
6) src/dev/build/tasks/nodejs/node_shasums.ts文件
修改前:
const url = `https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache/dist/v${nodeVersion}/SHASUMS256.txt`;
修改后:
const url = `https://npm.taobao.org/mirrors/node/v${nodeVersion}/SHASUMS256.txt`;
7) 删除根目录下package.json里面的iedriver这行依赖,淘宝源里没有这个
五、系统/tmp目录可用空间最好大于5G,否则打包的时候容易失败,如果/tmp空间不足,可以设置环境变量来改变/tmp目录
export TMPDIR=自定义目录
六、设置淘宝源,下载所需的依赖包和编译,执行以下命令
npm config set registry https://registry.npm.taobao.org/
yarn config set registry https://registry.npm.taobao.org/
yarn config set "chromedriver_cdnurl" "https://npm.taobao.org/mirrors/chromedriver"
npm config set puppeteer_download_host=https://npm.taobao.org/mirrors
yarn kbn bootstrap
yarn build --rpm
编译完成后target目录下会生成对应的安装包和rpm包
参考资料链接:
原文链接: https://www.cnblogs.com/jessen/p/13821906.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/204012
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!