SkyWalking 6.4.0移植指南
发表于 2026/04/25
0
作者|张久同
1 SkyWalking简介
|
软件名称 |
SkyWalking |
|
软件版本 |
6.4.0 |
|
开源性 |
开源 |
|
下载地址 |
https://github.com/apache/skywalking |
|
使用场景 |
可视化平台 |
2软硬件环境
|
类别 |
子项 |
版本 |
下载地址 |
|
硬件 |
CPU |
Kunpeng 920 |
/ |
|
OS |
openEuler |
20.03LTS SP1 |
https://www.openeuler.org/zh/ |
|
软件 |
SkyWalking |
6.4.0 |
https://github.com/apache/skywalking |
3 SkyWalking软件移植
3.1 构建环境搭建
3.1.1 依赖包安装
编译需要使用cmake apr等。(在后边编译时下载3.27)
步骤1 下载相关依赖包
|
yum install cmake apr* |
3.1.2 Maven安装
步骤1 下载软件包
|
wget https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz |
步骤2 解压源码
|
tar -zxf apache-maven-3.5.4-bin.tar.gz |
步骤3 添加到环境变量
|
vim /etc/profile export MAVEN_HOME=/your/path/to/maven export PATH=$MAVEN_HOME/bin:$PATH |
步骤4 环境变量生效
|
source /etc/profile |
3.1.3 gradle安装
步骤1 下载gradle
|
wget https://gradle.org/next-steps/?version=4.5&format=bin |
步骤2 解压
|
unzip gradle-4.5-bin.zip |
步骤3 添加到环境
|
vim /etc/profile export GRADLE_HOME=/your/path/to/gradle export PATH=$GRADLE_HOME/bin:$PATH |
步骤4 环境变量生效
|
source /etc/profile |
3.1.4 安装JDK1.8
步骤1 下载gradle
|
wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jdk_aarch64_linux_hotspot_8u252b09.tar.gz |
步骤2 解压
|
Tar -zxf OpenJDK**.tar.gz |
步骤3 添加到环境
|
vim /etc/profile export JAVE_HOME=/your/path/to/jdk export PATH=$JAVE_HOME/bin:$PATH |
步骤4 环境变量生效
|
source /etc/profile |
3.1.5 安装golang
步骤5 下载golang
|
wget https://dl.google.com/go/go1.14.2.linux-arm64.tar.gz |
步骤6 解压
|
tar -zxf go1.14.2.linux-arm64.tar.gz |
步骤7 添加到环境
|
vim /etc/profile export PATH=/your/path/to/go/bin:$PATH |
步骤8 环境变量生效
|
source /etc/profile |
3.2 编译安装grpc-java 1.8
步骤1 下载protobuf 3.4.0
步骤2 编译protobuf3.4.0
|
git checkout v3.4.0 git clean -f git branch -a ./autogen.sh ./configure && make && make install |
步骤3 安装到本地
|
mvn install:install-file -DgroupId=com.google.protobuf -DartifactId=protoc -Dversion=3.4.0 -Dclassifier=linux-aarch_64 -Dfile=/usr/local/bin/protoc -DgeneratePom=true -Dpackaging=exe |
步骤4 下载grpc-java
|
git clone https://github.com/google/grpc-java |
步骤5 编译grpc-java1.8.0
|
git checkout v1.8.0 git clean -f git branch -a cd compiler git reset --hard vim build.gradle |
修改源码

步骤6 安装到本地
|
../gradlew build -x javadoc -x testLiteGolden -x testLiteClasses -Pprotoc=/usr/local/bin/protoc mvn install:install-file -Dfile=build/artifacts/java_plugin/protoc-gen-grpc-java.exe -DgroupId=io.grpc -DartifactId=protoc-gen-grpc-java -Dversion=1.8.0 -Dclassifier=linux-aarch_64 -Dpackaging=exe |
3.3 编译安装grpc-java 1.4
步骤1 下载protobuf 3.3.0(使用3.2下载的源码略过此步骤)
步骤2 编译protobuf3.3.0
|
git checkout v3.3.0 git clean -f git branch -a ./autogen.sh ./configure && make && make install |
步骤3 安装到本地
|
mvn install:install-file -DgroupId=com.google.protobuf -DartifactId=protoc -Dversion=3.3.0 -Dclassifier=linux-aarch_64 -Dfile=/usr/local/bin/protoc -DgeneratePom=true -Dpackaging=exe |
步骤4 下载grpc-java(使用3.2下载的源码略过此步骤)
|
git clone https://github.com/google/grpc-java |
步骤5 编译grpc-java1.4.0
|
git checkout v1.4.0 git clean -f git branch -a cd compiler git reset --hard vim build.gradle |
修改源码

步骤6 安装到本地
|
../gradlew build -x javadoc -x testLiteGolden -x testLiteClasses -Pprotoc=/usr/local/bin/protoc mvn install:install-file -Dfile=build/artifacts/java_plugin/protoc-gen-grpc-java.exe -DgroupId=io.grpc -DartifactId=protoc-gen-grpc-java -Dversion=1.4.0 -Dclassifier=linux-aarch_64 -Dpackaging=exe |
3.4 编译安装Netty-tcnative-boringssl-static-2.7.0.Final
步骤1 下载netty-tcnative
|
wget https://codeload.github.com/netty/netty-tcnative/tar.gz/netty-tcnative-parent-2.0.7.Final mv netty-tcnative-parent-2.0.7.Final netty-tcnative-parent-2.0.7.Final.tar.gz tar -zxvf netty-tcnative-parent-2.0.7.Final.tar.gz cd netty-tcnative-netty-tcnative-parent-2.0.7.Final |
步骤2 修改配置
|
Vim pom.xml |
修改分支为3071

步骤3 注释373行获取

|
Vim boringssl-static/pom.xml |
修改boringssl-static的pom.xml文件

全局替换
sed -i 's/${uberArch}/x86_64/g' pom.xml
步骤4 修改配置文件
修改uber-staging下的x86为aarch_64



步骤5 下载apr-1.5.2以及openssl1.1.1u
|
wget https://archive.apache.org/dist/apr/apr-1.5.2.tar.gz mkdir target cp apr-1.5.2.tar.gz boring-static/target/ wget https://www.openssl.org/source/old/1.0.1/openssl-1.0.1u.tar.gz cp openssl-1.0.1u.tar.gz openssl-static/target/ |
修改pom.xml文件
步骤6 安装openssl
|
tar -zxf openssl-1.0.1u.tar.gz cd openssl-1.1.1u ./config make && make install export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/ssl/include |
步骤7 编译
|
mvn install -DskipTests mvn install -Puber-staging |
3.5 编译安装skywalking
步骤7 下载skywalking
|
git clone https://github.com/apache/skywalking |
步骤8 编译protobuf3.3.0
|
git checkout v6.4.0 git submodule init git submodule update |
步骤9 编译
|
mvn package –DskipTests |
4 FAQ
4.1 Netty-tcnaticve编译:找不到Openssl头文件&&unsupported relocation


确认本地openssl版本并将头文件添加到环境。
4.2 找不到apr-1.6.3文件

下载apr文件至target目录
|
wget https://archive.apache.org/dist/apr/apr-1.5.2.tar.gz cp apr-1.5.2.tar.gz target/ |
4.3 apm-agent-core编译失败

确认netty-tcnative-boring-static编译成功。可以从/root/.m2/repository/io/netty/netty-tc-native-boring-static目录下解压jar文件查看是否存在这几个文件
或者手动下载https://mirrors.huaweicloud.com/kunpeng/maven/io/netty/netty-tcnative-boringssl-static/2.0.7.Final/的so文件至该目录
4.4 Sharding-sphere-4.x编译失败

修改pom配置文件
|
Vim apm-sniffer/apm-sdk-plugin/sharding-sphere-4.x-plugin/pom.xml |

修改apm-sniffer/apm-sdk-plugin/sharding-sphere-4.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/shardingsphere/v4目录下的三个文件




