问题说明:
起因:下载的elinks不能启动
[root@wtstb lib]# elinks http://127.0.0.1:5000
elinks: error while loading shared libraries: libssl.so.3: cannot open shared object file: No such file or directory
[root@wtstb lib]# ll libssl*
lrwxrwxrwx 1 root root 13 Jul 7 09:23 libssl.so -> libssl.so.1.1
-rwxr-xr-x 1 root root 463304 Jul 7 09:23 libssl.so.1.1
[root@wtstb lib]#
检查并升级了openssl
[root@wtstb pacman.d]# pacman -Q openssl
openssl 1.1.1.q-1
[root@wtstb pacman.d]# pacman -S openssl
resolving dependencies...
looking for conflicting packages...
Packages (1) openssl-3.0.7-2
新的问题,严重了:pacman命令不能执行了。
[root@wtstb lib]# pacman
pacman: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory
[root@wtstb lib]# openssl version
OpenSSL 3.0.7 1 Nov 2022 (Library: OpenSSL 3.0.7 1 Nov 2022)
处理步骤
在官网https://archlinux.org/packages/ 搜索包,得到有1.1.1.s-2版本
https://archlinux.org/packages/core/x86_64/openssl-1.1/
右侧有个链接:Download From Mirror
地址为 https://archlinux.org/packages/core/x86_64/openssl-1.1/download/
下载命令都崩溃了。
[root@wtstb tmp]# curl -v
curl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
[root@wtstb tmp]# aria2c -v
aria2c: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
只能从其他机器下载,然后拷贝进去。
新建ssh窗口失败
Remote side unexpectedly closed network connection
原来打开的ssh窗口也不能开启sftp窗口了。
还好,原来安装了rz,可以直接拉文件进去。
[root@wtstb tmp]# rz
rz waiting to receive.**
[root@wtstb tmp]# ll open*
-rw-rw-rw- 1 root root 1844827 Nov 26 22:24 openssl-1.1-1.1.1.s-2-x86_64.pkg.tar.zst
tar -I zstd -xvf openssl-1.1-1.1.1.s-2-x86_64.pkg.tar.zst
还好,顺利解压成功,拷贝过去
[root@wtstb tmp]# cp -p usr/lib/libcrypto.so.1.1 /usr/lib/
[root@wtstb tmp]# cp -p usr/lib/libssl.so.1.1 /usr/lib/
我去,没有恢复。
[root@wtstb tmp]# pacman
pacman: error while loading shared libraries: libcrypto.so.1.1: wrong ELF class: ELFCLASS64
ELF是x86_64架构的文件,我的arm。大意了,还得另外去搞文件。
删除这个有问题的,注意别删错啊
[root@wtstb tmp]# rm -r .BUILDINFO .MTREE .PKGINFO usr/
https://archlinuxarm.org/packages 输入openssl
选择架构和版本
https://archlinuxarm.org/packages/armv7h/openssl-1.1
找到个镜像 https://mirrors.aliyun.com/archlinuxarm
[root@wtstb tmp]# ll op*
-rw-rw-rw- 1 root root 1421952 Nov 26 22:46 openssl-1.1-1.1.1.s-2-armv7h.pkg.tar.xz
把-I的参数zstd换为xz,解压了
tar -I xz -xvf openssl-1.1-1.1.1.s-2-armv7h.pkg.tar.xz
重新拷贝一下。
问题解决了,ssh登录成功。
[root@wtstb tmp]# pacman -h
usage: pacman <operation> [...]
其他隐患:未知。
拷贝防身
[root@wtstb tmp]# cp -p usr/bin/openssl-1.1 /usr/bin/
其他的include,license不管。2个.so文件只是链接。
其他就是2个目录可能有影响了,到时候再说吧。
[root@wtstb tmp]# ls -l usr/lib/openssl-1.1/
total 0
drwxr-xr-x 2 root root 100 Nov 6 00:05 engines-1.1
lrwxrwxrwx 1 root root 19 Nov 6 00:05 libcrypto.so -> ../libcrypto.so.1.1
lrwxrwxrwx 1 root root 16 Nov 6 00:05 libssl.so -> ../libssl.so.1.1
drwxr-xr-x 2 root root 100 Nov 6 00:05 pkgconfig
[root@wtstb tmp]# cd usr/lib/openssl-1.1/
[root@wtstb openssl-1.1]# pwd
/tmp/usr/lib/openssl-1.1
[root@wtstb openssl-1.1]# tree
.
├── engines-1.1
│ ├── afalg.so
│ ├── capi.so
│ └── padlock.so
├── libcrypto.so -> ../libcrypto.so.1.1
├── libssl.so -> ../libssl.so.1.1
└── pkgconfig
├── libcrypto.pc
├── libssl.pc
└── openssl.pc
2 directories, 8 files
[root@wtstb openssl-1.1]#
应该问题不大,自己折腾的机器。
[root@wtstb openssl-1.1]# ls -l /usr/lib/openssl*
ls: cannot access '/usr/lib/openssl*': No such file or directory
之前检查失败的,现在都正常了。
systemctl restart sshd
新开窗口ssh登录成功。
reboot一把,ssh没有问题。
总结:
1、建议安装上lrzsz
[root@wtstb ~]# pacman -Ss lrzsz
community/lrzsz 0.12.20-8 [installed]
xmodem, ymodem and zmodem file transfer protocols
安装使用-S,去掉后面的小s哦。
2、有问题,不要急于重启,注意保持当前窗口正常连接,比如top起。
3、最重要的openssl不要随便动。