1简介
LZ4是一种无损数据压缩算法,着重于压缩和解压的速度,并且应用广泛,在Hadoop、Linux内核、文件系统都有应用。
lz4是目前综合来看效率最高的压缩算法,更加侧重压缩解压速度,压缩比并不是第一。在当前的安卓和苹果操作系统中,内存压缩技术就使用的是lz4算法,及时压缩手机内存以带来更多的内存空间。本质上是时间换空间。
类别:解压缩
2环境
类别
子项
版本
获取地址(方法)
硬件
CPU
Kunpeng 920
iBMC
网络
Ethernet-10GE
iBMC
存储
SATA 4T
iBMC
内存
xxG xxxMHz
iBMC
OS
NeoKylin
7.5
cat /etc/neokylin-release
Kernel
4.14.0
cat /proc/version
软件
GCC
4.8.5
参考下面安装说明
OpenJDK
1.8.0_191
参考下面安装说明
Lz4-java
1.2.0
参考下面安装说明
3依赖安装
3.1安装OpenJDK
下载并安装到指定目录(如/opt/tools/installed):
配置java环境变量,在/etc/profile文件末尾处增加下面的代码:
JAVA_HOME=/opt/tools/installed/jdk8u191-b12
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH
运行下面命令,使修改的环境变量生效:
source /etc/profile
3.2安装GCC等依赖项
挂载OS镜像:
mount -o loop /home/NeoKylin/nsV7Update5-adv-lic-build05-aarch64.iso /mnt/NeoKylin/
修改/etc/yum.repos.d/ns7-adv.repo文件,配置yum本地源:
[ns7-adv-os]
name=NeoKylin Linux Advanced Server 7 - Os
baseurl= file:///mnt/NeoKylin
gpgcheck=0
gpgkey=file:///mnt/NeoKylin/RPM-GPG-KEY-neokylin-release
enabled=1
运行下面的命令,使yum源配置生效:
yum clean all
yum makecache
yum安装GCC等相关依赖:
sudo yum install -y snappy snappy-devel autoconf automake libtool git gcc gcc-c++ make cmake openssl openssl-devel ncurses-devel zlib zlib-devel bzip2 bzip2-devel bzip2-libs readline readline-devel bison zip unzip tar
3.3安装ant编译软件
1、下载ant开源软件包
wget http://mirror.bit.edu.cn/apache//ant/binaries/apache-ant-1.9.14-bin.tar.gz
2、解压apache-ant-1.9.14-bin.tar.gz
tar zxvf apache-ant-1.9.14-bin.tar.gz
3、进入解压路径
cd apache-ant-1.9.14/
4、将ANT_HOME配置到/etc/profile环境变量中
vi /etc/proflile
5、使ANT_HOME环境变量生效
source /etc/proflile
3.5对gcc、g++和c++增加-fsigned-char选项
1、对gcc增加-fsigned-char选项
1)使用which gcc命令寻找gcc所在路径(一般位于/usr/bin/gcc)
which gcc
2)、更改gcc的名字(比如改成gcc-arm)
mv /usr/bin/gcc /usr/bin/gcc-arm
3)、进入gcc所在目录执行vi gcc,并填入如下内容保存:
#! /bin/sh
/usr/bin/gcc-arm -fsigned-char "$@"
cd /usr/bin/
vi gcc
4)、执行chmod +x gcc给脚本添加执行权限
chmod +x gcc
2、对g++增加-fsigned-char选项
1)使用which g++命令寻找g++所在路径(一般位于/usr/bin/g++)
which g++
2)、更改g++的名字(比如改成g++-arm)
mv /usr/bin/g++ /usr/bin/g++-arm
3)、进入g++所在目录执行vi g++,并填入如下内容保存:
#! /bin/sh
/usr/bin/g++-arm -fsigned-char "$@"
cd /usr/bin/
vi g++
4)、执行chmod +x g++给脚本添加执行权限
chmod +x g++
3、对c++增加-fsigned-char选项
1)使用which c++命令寻找g++所在路径(一般位于/usr/bin/c++)
which c++
2)、更改c++的名字(比如改成c++-arm)
mv /usr/bin/c++ /usr/bin/c++-arm
3)、进入c++所在目录执行vi c++,并填入如下内容保存:
#! /bin/sh
/usr/bin/c++-arm -fsigned-char "$@"
cd /usr/bin/
vi c++
4)、执行chmod +x c++给脚本添加执行权限
chmod +x c++
4编译安装
1、从github网站下载源码并解压
2、进入解压目录
cd lz4-java-1.2.0/
3、修改build.xml增加-fsigned-char
vi build.xml
增加如下内容
4、修改ivy.xml中lz4-java编译后的版本号
vi ivy.xml
注释如下红框内注释内容,并增加如下行
5、执行ant编译命令进行编译
ant
报上图错误时执行ant ivy-bootstrap手动下载ivy-2.2.0.jar
【注】:如通过ant ivy-bootstrap无法下载ivy-2.2.0.jar,可以通过wget手动下载ivy-2.2.0.jar(wget http://repo1.maven.org/maven2/org/apache/ivy/ivy/2.2.0/ivy-2.2.0.jar)
6、重新执行ant编译
ant
7、查看编译后的lz4-1.2.0.jar
cd dist/
8、将编译的lz4-1.2.0.jar替换到本地maven仓
cd dist/
cp lz4-1.2.0.jar /root/.m2/repository/net/jpountz/lz4/lz4/1.2.0/
5验证
1、编译验证
使用checkSo工具(获取地址:https://bbs.huaweicloud.com/forum/thread-22679-1-1.html)检查编译后的lz4-1.3.0.jar是否不再含有依赖的x86架构的so文件,检查方法参考工具中的 《CheckSo使用说明.docx》,无依赖的x86架构的so文件则表明编译成功。
2、功能验证
不涉及。
6参考信息
7FAQ
1、编译参考 “4 编译安装”中的编译过程。