CMake软件迁移评估-分析软件包

简要介绍
CMake是一个开源、跨平台的工具系列,旨在于构建、测试和打包软件。CMake使用简单的平台和编译器独立的配置文件控制软件编译过程,并生成可在开发者选择的编译器环境中使用的本机 Makefile 和工作区。CMake工具套件是由Kitware创建的,以响应ITK和VTK等开源项目对强大的跨平台构建环境的需求。

本实践使用鲲鹏DevKit中的应用迁移工具进行软件迁移评估,帮助用户实现软件迁移。

语言:C/C++

开源协议:BSD 3-clause License

建议版本
鲲鹏DevKit工具版本:24.0.RC2

CMake源码包版本:v3.19.8
硬件要求
硬件要求如表1所示。

表1 硬件要求
项目

说明

服务器

TaiShan 200 2280 服务器(等同于其它基于鲲鹏920的服务器)

CPU

鲲鹏920 96核处理器

OS

CentOS 7.6

软件要求
软件要求如表2所示。

表2 软件要求
项目 m版本 获取地址开源软件CMake

CMake V3.19.8

https://github.com/Kitware/CMake/releases/tag/v3.19.8
单击下方链接获取x86源码包。
https://github.com/Kitware/CMake/releases/tag/v3.19.8

图1 下载x86软件包
点击放大

上传CMake软件包至鲲鹏环境并解压,如图2所示。
图2 上传并解压
点击放大

图3 解压后的文件目录
点击放大

执行解压后的二进制文件,结果显示不可执行,如图4所示。
图4 执行解压后的二进制文件
点击放大
前提条件
已成功安装鲲鹏DevKit,并已安装对应工具。
已安装鲲鹏DevKit插件,并已配置远端服务器。
操作步骤
打开鲲鹏DevKit插件并登录鲲鹏DevKit工具,在左侧导航栏中里选择“应用迁移 > 软件迁移评估”,勾选“分析软件包”,单击“上传”上传待分析的x86 RPM包,目标操作系统选择CentOS 7.6,执行软件包迁移评估。
图1 扫描
点击放大

查看扫描报告,如图2所示。
图2 扫描报告

在这里插入图片描述
单击报告中依赖文件的链接获取依赖文件,并执行以下命令解压安装,如图3所示。
rpm2cpio cmake-2.8.12.2-2.el7.aarch64.rpm | cpio -div
rpm2cpio cmake-gui-2.8.12.2-2.el7.aarch64.rpm | cpio -div
图3 下载并解压依赖文件
点击放大

解压后如图4所示。

图4 解压后的文件
在这里插入图片描述

配置环境变量。
执行如下命令修改“/etc/profile”文件。
vi /etc/profile
在“/etc/profile”文件末尾新增以下字段,完成后按“ESC”,输入“:wq”,按“Enter”保存并退出。
export PATH=/home/usr/bin:$PATH
执行以下命令使新增环境变量生效。
source /etc/profile
验证该二进制文件。
说明
验证过程中如出现因缺失动态链接库导致错误,请参考动态链接库缺失。

图5 验证1
点击放大

图6 验证2
点击放大

图7 验证3
点击放大

图8 验证4
点击放大

图9 验证5
点击放大

问题现象描述
在CentOS 7.6.1810操作系统验证二进制文件时,输入命令后返回以下回显信息。

cmake: error while loading shared libraries: libarchive.so.13: cannot open shared object file: No such file or directory
原因分析
操作系统缺少对应的动态链接库文件。

解决方案
执行以下命令进入解压后文件目录,并查看程序运行所需要的共享库,此处以CentOS 7.6.1810操作系统为例。
cd /home/usr/bin
ldd cmake
返回以下信息:

linux-vdso.so.1 => (0x0000ffff9c180000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000ffff9c130000)
libexpat.so.1 => /lib64/libexpat.so.1 (0x0000ffff9c0e0000)
libz.so.1 => /lib64/libz.so.1 (0x0000ffff9c0a0000)
libarchive.so.13 => not found
libcurl.so.4 => /lib64/libcurl.so.4 (0x0000ffff9c010000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x0000ffff9bee0000)
libm.so.6 => /lib64/libm.so.6 (0x0000ffff9be20000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000ffff9bde0000)
libc.so.6 => /lib64/libc.so.6 (0x0000ffff9bc50000)

确认“libarchive.so.13”文件为缺失文件。

执行以下命令查找“libarchive.so.13”所在的软件包。
yum provides */libarchive.so.13
返回以下信息:

Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile

  • base: ftp.yz.yamagata-u.ac.jp
  • extras: ftp.yz.yamagata-u.ac.jp
  • updates: ftp.yz.yamagata-u.ac.jp
    libarchive-3.1.2-14.el7_7.aarch64 : A library for handling streaming archive formats
    Repo : base
    Matched from:
    Filename : /usr/lib64/libarchive.so.13
    执行以下命令安装查询到的软件包即可解决依赖库缺失问题。
    yum install -y libarchive-3.1.2-14.el7_7.aarch64
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值