apt-get upgrade openssl 不会将 Ubuntu 12.04 升级到最新版本

use*_*988 6 upgrade openssl ubuntu heartbleed

我尝试了以下操作,但无法获得构建日期晚于:

UTC 2012 年 8 月 21 日,星期二 05:18:46

我做了以下工作:

apt-get dist-upgrade
apt-get update
apt-get upgrade openssl
Run Code Online (Sandbox Code Playgroud)

apt-get purge openssl
apt-get install openssl
Run Code Online (Sandbox Code Playgroud)

apt-get purge libcrypto1.0.0
apt-get install libcrypto1.0.0
Run Code Online (Sandbox Code Playgroud)

一切似乎都正常,但构建日期仍然如上。而http://filippo.io/Heartbleed/测试仍然失败。

我知道我没有疯,因为我能够在星期三更新我的相同服务器。(除硬件外,所有方式都相同)。

编辑:

我比较了两台机器上的 /etc/apt/sources.list 文件,它们看起来是一样的。一台服务器如何更新而另一台不会?

编辑:

按照建议做了:

apt-get purge openssl
reboot
apt-get install openssl
reboot
Run Code Online (Sandbox Code Playgroud)

无济于事。

在 libssl1.0.0 上尝试了相同的命令,仍然与上面列出的版本相同。

这个让我难住了。

有什么建议?

编辑

一旦我获得足够的街头信誉 (15),我就会 +1 可行的解决方法

编辑

按照建议,我使用 --reinstall --print-uris 运行 apt-get 并返回:

http://us.archive.ubuntu.com/ubuntu/pool/main/o/openssl/openssl_1.0.1-4ubuntu5.12_amd64.deb
Run Code Online (Sandbox Code Playgroud)

然后重新启动,与上面列出的版本相同。仍然失败的心血。

Max*_*mon 8

强制重新安装软件包

Apt 认为软件包已安装和升级。libssl 的手动验证和测试表明情况并非如此,因此包数据库与安装的文件不一致(可能之前已升级文件而没有包管理器参与)。无论发生这种情况的原因是什么,软件包都没有正确升级或重新安装。这假设已确定系统正在报告固定版本,但仍显示为易受攻击。

首先,尝试强制重新安装受影响的软件包:

apt-get install --reinstall libssl1.0.0

如果失败,请尝试强制完全删除包,而不涉及任何 Apt 的依赖管理和健全性检查:

dpkg --force-all --remove libssl1.0.0

在这一点上,系统实际上是“损坏的”,因为缺少 libssl 并且仍然安装了许多依赖于它的软件包(这是 Apt 努力阻止的,也是我们落后于 Apt 的原因),所以重新安装libssl1 .0.0,从存储库重新下载最新的包:

apt-get clean && apt-get install libssl1.0.0

或者,如果您下载了已知良好的 deb 包,您可以使用 dpkg 安装并强制覆盖任何现有文件:

dpkg --force-overwrite -i libssl1.0.0_1.0.1-4ubuntu5.12_amd64.deb

根据已知的良好配置重新测试和检查(debsums、sha1sum)已安装的文件。