适用版本
OceanBase 数据库 V2.x、V3.x、V4.x 的各个版本
问题现象
安装 OceanBase RPM 包报错。
libcrypto.so.10()(64bit) is needed by oceanbase-xxx / libssl.so.10()(64bit) is needed by oceanbase-xxx通过 OCP 安装 OceanBase 集群时在 Install OB rpm 这一步报错。
2023-02-14 16:39:53.457 INFO 10 --- [pool-manual-subtask-executor15,7373996b10474e75,028a374dc2b3] c.o.o.s.task.util.AgentAsyncTaskHelper : try to request task result(EXECUTE), result:false,null,OcpAgentError: code = 3001, message = Install software package failed, reason: install package /tmp/rpms/oceanbase-2.2.52-20201216162546.el7.x86_64.rpm to path /home/admin/oceanbase: failed to execute command: Command{user=root, program=sh, outputType=std, cmd=rpm -Uvh --oldpackage --prefix=/home/admin/oceanbase /tmp/rpms/oceanbase-2.2.52-20201216162546.el7.x86_64.rpm, timeout=10m0s}, exitCode: 1, output: , error: error: Failed dependencies: libcrypto.so.10()(64bit) is needed by oceanbase-2.2.52-20201216162546.el7.x86_64 libcrypto.so.10(libcrypto.so.10)(64bit) is needed by oceanbase-2.2.52-20201216162546.el7.x86_64 libssl.so.10()(64bit) is needed by oceanbase-2.2.52-20201216162546.el7.x86_64 libssl.so.10(libssl.so.10)(64bit) is needed by oceanbase-2.2.52-20201216162546.el7.x86_64 : exit status 1,<null> 2023-02-14 16:39:53.489 ERROR 10 --- [pool-manual-subtask-executor15,7373996b10474e75,028a374dc2b3] c.o.o.s.task.util.AgentAsyncTaskHelper : failed to execute async task, task token :4a4edc65-1365-479a-94f5-3bdba76ae48d, err: OcpAgentError: code = 3001, message = Install software package failed, reason: install package /tmp/rpms/oceanbase-2.2.52-20201216162546.el7.x86_64.rpm to path /home/admin/oceanbase: failed to execute command: Command{user=root, program=sh, outputType=std, cmd=rpm -Uvh --oldpackage --prefix=/home/admin/oceanbase /tmp/rpms/oceanbase-2.2.52-20201216162546.el7.x86_64.rpm, timeout=10m0s}, exitCode: 1, output: , error: error: Failed dependencies: libcrypto.so.10()(64bit) is needed by oceanbase-2.2.52-20201216162546.el7.x86_64 libcrypto.so.10(libcrypto.so.10)(64bit) is needed by oceanbase-2.2.52-20201216162546.el7.x86_64 libssl.so.10()(64bit) is needed by oceanbase-2.2.52-20201216162546.el7.x86_64 libssl.so.10(libssl.so.10)(64bit) is needed by oceanbase-2.2.52-20201216162546.el7.x86_64 : exit status 1手工黑屏安装对应的 RPM 包同样报错。
[root@localhost rpms]# rpm -ivh oceanbase-2.2.52-20201216162546.el7.x86_64.rpm error: Failed dependencies: libcrypto.so.10()(64bit) is needed by oceanbase-2.2.52-20201216162546.el7.x86_64 libcrypto.so.10(libcrypto.so.10)(64bit) is needed by oceanbase-2.2.52-20201216162546.el7.x86_64 libssl.so.10()(64bit) is needed by oceanbase-2.2.52-20201216162546.el7.x86_64 libssl.so.10(libssl.so.10)(64bit) is needed by oceanbase-2.2.52-20201216162546.el7.x86_64 [root@localhost rpms]#
问题原因
因为系统里的报错的这几个 so 文件不是通过 yum install 的,所以 RPM 的 rpmdb 中没有相关包安装的元信息。
[root@localhost rpms]# find /usr -name libssl.so.10
/usr/lib64/libssl.so.10
/usr/local/clonescripts/db_ob_v1/lib_file/arm/libssl.so.10
/usr/local/clonescripts/db_ob_v1/lib_file/x86/libssl.so.10
[root@localhost rpms]# rpm -qf /usr/lib64/libssl.so.10
file /usr/lib64/libssl.so.10 is not owned by any package
[root@localhost rpms]#
这几个动态链接库文件不是通过 RPM 装的,所以即使系统里面有这个 so 文件,但是 rpm install 时识别不了。
解决方法
rpm -ivh --nodeps 手工安装一下对应的 RPM 包,然后在 OCP 白屏界面上将失败的子任务标记成功就可以了。
[root@localhost rpms]# rpm -ivh oceanbase-2.2.52-20201216162546.el7.x86_64.rpm --nodeps
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:oceanbase-2.2.52-20201216162546.e################################# [100%]
[root@localhost rpms]#