将软件从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
工具脚本在附件中。
将软件从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
工具脚本在附件中。