OpenSSH【安装 02】离线升级异常问题解决、无法升级时的失败恢复

本文记录了OpenSSL离线升级过程中遇到的常见问题及解决方案。主要包括:

  • 1)"Can't locate IPC/Cmd.pm"错误,通过强制安装rpm包解决依赖问题;
  • 2)Python版本冲突问题,通过重新安装Python 2.7.5解决依赖关系;
  • 3)升级失败后的恢复方法,需重新安装原始版本的openssh相关rpm包。

分享了解决问题所需的安装包资源,包括Python依赖文件和SSH恢复文件,存放在百度网盘供下载使用。

1.异常问题

1.1 Can't locate IPC/Cmd.pm in @INC

以下是在安装 openssl-3.2.0时的报错信息,内容如下,其中 /home/sshupdate/openssl-3.2.0/为安装包的解压目录:

bash 复制代码
Can't locate IPC/Cmd.pm in @INC (@INC contains: /home/sshupdate/openssl-3.2.0/util/perl /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 . /home/sshupdate/openssl-3.2.0/external/perl/Text-Template-1.56/lib) at /home/sshupdate/openssl-3.2.0/util/perl/OpenSSL/config.pm line 19.
BEGIN failed--compilation aborted at /home/sshupdate/openssl-3.2.0/util/perl/OpenSSL/config.pm line 19.
Compilation failed in require at /home/sshupdate/openssl-3.2.0/Configure line 23.
BEGIN failed--compilation aborted at /home/sshupdate/openssl-3.2.0/Configure line 23.

问题原因是上篇《OpenSSH 漏洞修复》在离线安装 perl-CPAN perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker时命令使用的是:

bash 复制代码
rpm -ivh *.rpm

次命令无法处理安装包之间的依赖关系,导致安装中断,使用以下命令解决了这个问题:

bash 复制代码
rpm -ivh --force *.rpm

1.2 python(abi) = 2.7 被 xxx-xxx.el7.noarch 需要

  1. 问题说明
bash 复制代码
警告:gdbm-devel-1.10-8.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
错误:依赖检测失败:
        python(abi) = 2.7 被 pyparsing-1.5.6-9.el7.noarch 需要
        /usr/bin/python2 被 systemtap-sdt-devel-4.0-13.el7.x86_64 需要

当前问题是在安装依赖文件时就报错了,后来发现当前的 Python 是自行解压安装的 2.7.5版本,安装目录非 /usr/bin/尝试的解决方法:

  • (失败)使用软连接 ln -s /usr/local/bin/python2.7 /usr/bin/python2依然报错。
  • (成功)使用 rpm 包离线安装 Python2.7.5
  1. 解决方法

离线安装过程:

bash 复制代码
# 先安装Pyhton依赖
rpm -ivh python-libs-2.7.5-89.el7.x86_64.rpm
# 然后安装Python环境
rpm -ivh python-2.7.5-89.el7.x86_64.rpm

安装后的版本查看:

bash 复制代码
# 安装包上的版本号明明是2.7.5为什么会显示2.7.15?
Python 2.7.15

安装 Python 后,后续的安装流程正常。

2.失败恢复

升级失败后发现一个问题,之前的备份不可用,仅仅进行以下操作是无效的:

bash 复制代码
cp -r /etc/ssh.old /etc/ssh
cp -p /usr/bin/ssh.bak /usr/bin/ssh
cp -p /usr/sbin/sshd.bak /usr/sbin/sshd
cp -p /usr/bin/ssh-keygen.bak /usr/bin/ssh-keygen

需要重新安装卸载的 3 个 rpm 包:

  • openssh-7.4p1-21.el7.x86_64.rpm
  • openssh-clients-7.4p1-21.el7.x86_64.rpm
  • openssh-server-7.4p1-21.el7.x86_64.rpm

3.文件分享

通过网盘分享的文件:CSDN_OpenSSH_恢复 链接: pan.baidu.com/s/1cxZigSHf... 提取码: bcbm

  • 文件夹解决 Python2 问题包含以下文件
  • 文件夹失败恢复文件包含以下文件

4.小小的总结

OpenSSH的升级是个绕不开的话题,漏洞补了漏、漏了补,升级失败不算大问题,也不是小问题。

相关推荐
爱吃烤鸡翅的酸菜鱼3 小时前
【RabbitMQ】发布订阅架构深度实践:构建高可用异步消息处理系统
java·spring boot·分布式·后端·websocket·架构·rabbitmq
回家路上绕了弯3 小时前
JVM 调参实战指南:从基础到落地,解决 GC 与内存难题
分布式·后端
陈逸轩*^_^*3 小时前
RabbitMQ 常见八股:包括组成部分、消息的相关处理、持久化和集群等。
后端·消息队列·rabbitmq
VX:Fegn08954 小时前
计算机毕业设计|基于springboot + vue房屋租赁管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
A-程序设计4 小时前
基于Django短视频推荐系统设计与实现-(源码+LW+可部署)
后端·python·django
古城小栈4 小时前
Go中 巧妙解决 同主版本多子版本共存
后端·golang
心灵宝贝4 小时前
sw_64架构 docker-ce-cli rpm 安装方法(附安装包)
后端·spring·spring cloud
IT_陈寒4 小时前
Redis性能翻倍的5个冷门技巧:从缓存穿透到集群优化实战指南
前端·人工智能·后端
聆风吟º4 小时前
【Spring Boot 报错已解决】Spring Boot接口报错 “No converter found” 解决手册
java·spring boot·后端
美味小鱼4 小时前
DupFinder:一个用 Rust 编写的高性能重复文件查找工具
开发语言·后端·rust