🍂前言
简单记录一下在Linux Kylin10
系统里源码编译kibana,期间也踩了不少坑,仅供大家参考。
🍂一、编译环境
kibana版本:7.17.7
服务器系统:4.19.90-23.8.v2101.ky10.aarch64
🍂二、安装依赖包
需要安装 glibc
和 g++
, make
, basion
,Python
等。(因为当时我是就升级了这么多的依赖),node
的版本也要对应。
1.首先查看node版本,kibana7.17.7用的是node16.17.1
perl
nvm use
nvm无效的话,通过curl或wget安装
bash
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
source ~/.bashrc 重启环境
nvm --version
nvm install v16.19.1 安装node
nvm use v16.17.1 使用指定版本node
2.按照以下命令即可升级make
go
wget http://ftp.gnu.org/pub/gnu/make/make-4.3.tar.gz
tar -zxvf make-4.3.tar.gz
cd make-4.3
./configure --prefix=/usr
make && make install
make -v
3.按照以下命令即可升级basion
bash
wget http://ftp.gnu.org/pub/gnu/bison/bison-3.0.5.tar.gz
tar -zxvf bison-3.0.5.tar.gz
cd bison-3.0.5
./configure
make && make install
basin --version
4、按照以下命令即可升级python
bash
yum install -y python2 安装python 如果有,可以忽略此步骤
yum install -y python3 安装python3
**下载新版本python**
wget https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz
tar -zxvf Python-2.7.18.tgz
cd Python-2.7.18
./configure --prefix=/usr
make && make install
python --version 查看版本
下载新版本python3
wget https://www.python.org/ftp/python/3.8.8/Python-3.8.8.tgz
tar -zxvf Python-3.8.8.tgz
cd Python-3.8.8
./configure
make && make install
python3 -V 查看python3版本
5.在升级 glibc
和 g++
的时候踩了很多的坑,最终采用 openeuler
去解决
首先vi /etc/yum.repo.d/openEuler.repo 如果没有这个文件直接新建
bash
vi /etc/yum.repo.d/openEuler.repo
将下面的代码复制进去
ini
[osrepo]
name=osrepo
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/everything/aarch64/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/everything/aarch64/RPM-GPG-KEY-openEuler
执行yum install ocaml-dune
yum install ocaml-dune
6.此时所有用到的依赖已经升级完毕,可直接运行
sql
yarn start
或
yarn start --run-examples
🍂三、修改代码部分
(1.) src/dev/build/lib/platform.ts文件
修改前:
javascript
getNodeArch() {
return `${name}-x64`;
}
getBuildName() {
return `${name}-x86_64`;
}
修改后:
javascript
getNodeArch() {
return `${name}-arm64`;
}
getBuildName() {
return `${name}-aarch64`;
}
(2.)src/dev/build/tasks/os_packages/create_os_package_tasks.ts文件
修改前:
arduino
async run(config, log, build) {
await runFpm(config, log, build, 'rpm', [
'--architecture', 'x86_64',
'--rpm-os', 'linux'
]);
}
修改后:
arduino
async run(config, log, build) {
await runFpm(config, log, build, 'rpm', [
'--architecture', 'aarch64',
'--rpm-os', 'linux'
]);
}
(3.)src/dev/ci_setup/setup_env.sh文件
修改前:
bash
nodeUrl="https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache/dist/v$nodeVersion/node-v$nodeVersion-${OS}-${classifier}"
修改后:
bash
nodeUrl="https://npm.taobao.org/mirrors/node/v$nodeVersion/node-v$nodeVersion-${OS}-${classifier}"
(4.)src/dev/build/tasks/nodejs/node_download_info.ts文件
修改前:
ini
const url = `https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache/dist/v${version}/${downloadName}`;
修改后:
ini
const url = `https://npm.taobao.org/mirrors/node/v${version}/${downloadName}`;
(5.)src/dev/build/tasks/nodejs/node_shasums.ts文件
修改前:
ini
const url = `https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache/dist/v${nodeVersion}/SHASUMS256.txt`;
修改后:
ini
const url = `https://npm.taobao.org/mirrors/node/v${nodeVersion}/SHASUMS256.txt`;
(6.)删除根目录下package.json里面的iedriver这行依赖,淘宝源里没有这个.如果没有就不需要了
综上所述就是一个理论:
把
us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-p...
全部换成
原因就是之前地址访问不到,导致执行yarn build --skip-os-packages
的时候会连接超时而无法下载
🍂四、设置淘宝源,下载所需的依赖包和编译,执行以下命令
arduino
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
Bootstrap Kibana 安装所有依赖项其他命令:
css
yarn kbn bootstrap
yarn kbn bootstrap --offline 可离线安装
yarn kbn bootstrap --force-install 强制安装
yarn kbn clean 切换不同版本npm需要运行
yarn cache clean 遇到故障后清理缓存