kibana源码编译(利用淘宝源)

简单记录一下在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这行依赖,淘宝源里没有这个

 kibana源码编译(利用淘宝源)

五、系统/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包

kibana源码编译(利用淘宝源)

参考资料链接:

https://bbs.huaweicloud.com/forum/thread-40427-1-1.html

https://www.cnblogs.com/Bud-blog/p/13469086.html

原文链接: https://www.cnblogs.com/jessen/p/13821906.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    kibana源码编译(利用淘宝源)

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/204012

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月12日 下午9:42
下一篇 2023年2月12日 下午9:43

相关推荐