Fal*_*mot 12
最好的办法是libssl.so.10从运行与您相同版本的 openssl 的工作计算机中找到(运行相同版本的不同 centos 机器应该就足够了),然后使用 U 盘将文件复制回原位。
为了解决这个问题,您需要替换文件。提到的一种方法是从另一个系统复制库,另一种方法是重新安装提供它的包。
您提到使用,apt-get所以我假设您使用的是 Ubuntu。第一步是准确查看您需要为该文件安装什么包。如果你运行命令`
dpkg -S libssl.so.10
Run Code Online (Sandbox Code Playgroud)
您将从我的 Ubuntu 12.04.2 系统中获得与此类似的输出
libssl1.0.0: /lib/x86_64-linux-gnu/libssl.so.1.0.0
Run Code Online (Sandbox Code Playgroud)
然后跑步dpkg -l | grep libssl1.0.0给了我
ii libssl1.0.0 1.0.1-4ubuntu5.10 SSL shared libraries
Run Code Online (Sandbox Code Playgroud)
这告诉我们我需要去寻找libssl1.0.0版本1.0.1-4ubuntu5.10并安装它。软件包可以从
http://us.archive.ubuntu.com/ubuntu/pool/main/o/openssl/
Run Code Online (Sandbox Code Playgroud)
在该列表中搜索我可以发现我需要libssl1.0.0_1.0.1-4ubuntu5.10_amd64.deb使用您选择的方法下载文件。
下载文件后,您可以通过发出
dpkg -i libssl1.0.0_1.0.1-4ubuntu5.10_amd64.deb
Run Code Online (Sandbox Code Playgroud)
幸运的是,您现在将成为新 libssl 的全新所有者。
小智 1
您是否真的删除了真实的.so文件,或者仅删除了指向真实.so文件的软链接,因此库创建者可以动态刷新库并重新编译系统中的所有程序。
如果您只删除了软链接,让我们找到它!
使用
find /usr/lib | grep libssl
Run Code Online (Sandbox Code Playgroud)
要找到真正的 .so 文件,如果找到它,请使用以下命令重新创建软链接:
ln /usr/lib/path/to/real/libssl /lib/libssl.so.10
Run Code Online (Sandbox Code Playgroud)
也许程序(现在:apt-get)尝试访问指定路径中的共享库,该路径编译到程序中,使用以下命令找到您的程序:
which apt-get
Run Code Online (Sandbox Code Playgroud)
(我的结果是:/usr/bin/apt-get)
并在程序中找到“潜在”共享库位置:
strings /path/to/your/program
Run Code Online (Sandbox Code Playgroud)
(我的结果是:
/lib64/ld-linux-x86-64.so.2
libapt-pkg.so.4.12
libutil.so.1
libstdc++.so.6
libm.so.6
libgcc_s.so.1
libc.so.6
__libc_start_main
install - Install new packages (pkg is libc6 not libc6.deb)
Run Code Online (Sandbox Code Playgroud)
)
啊哈它静态使用 /lib64/ld-linux-x86-64.so.2
(看起来像我的 apt-get 编译没有 libssl)
我们来尝试一下吧!
| 归档时间: |
|
| 查看次数: |
5496 次 |
| 最近记录: |