开发者
centos7.6到openEuler20.03-LTS版本的二进制文件迁移
centos7.6到openEuler20.03-LTS版本的二进制文件迁移
新人帖
发表于2023/06/28
1110

将软件从centos迁移到openEuler操作系统时,如果要迁移的软件没有源码,只有二进制文件,又无法使用x2openEuler工具迁移的情况下,可以尝试以下方案。

以下步骤在openEuler操作系统上执行。

一、安装ruby

yum install ruby -y

二、安装patchelf-0.14

git clone https://github.com/NixOS/patchelf.git -b 0.14 

cd  patchelf 

./bootstrap.sh 

./configure 

make 

make install

三、创建相关目录

mkdir -p /opt/c7/usr/lib64 

mkdir -p /opt/c7/usr/lib

mkdir /opt/c7/usr/bin

四、从centos拷贝二进制文件及运行所需的动态库so文件,依赖的so文件可以通过ldd命令查看

rsync -av <centos_ip>:/usr/lib64/* /opt/c7/usr/lib64

rsync -av <centos_ip>:/usr/lib/* /opt/c7/usr/lib

scp <centos_ip>:/usr/local/bin/qemu-img /opt/c7/usr/bin

五、上传附件中的add-rpath.sh和expand-lib.rb脚本(待上传)到/opt/c7/usr目录,并执行以下命令

cd /opt/c7/usr

chmod +x add-rpath.sh expand-lib.rb

./add-rpath.sh bin/* 

./add-rpath.sh lib64/libc-2.17.so 

./expand-lib.rb lib64/* lib64/*/*

执行完以上步骤后,ldd xxx命令查看,如果有xx.so not found的情况,需要对该so也进行ldd xx.so进行查看,然后进行patchelf操作,例如patchelf --set-rpath /opt/c7/usr/lib64 ./lib64/libaio.so.1

工具脚本在附件中。

收藏举报
Level 1
0
帖子
0
粉丝
0
获赞