最近升级后,我遇到了一些 SSL 连接问题。我想暂时降级 openssl,看看问题是否会消失。
当前安装的版本openssl
为1.0.1-4ubuntu5.32
,之前的版本为5.31
。但是,当我尝试:
apt-get install openssl=1.0.1-4ubuntu5.31
我得到:
E: Version '1.0.1-4ubuntu5.31' for 'openssl' was not found
我认为这是安装特定版本的正确程序?
答案1
我不认为降级能解决你的问题。但你问:
该软件包openssl=1.0.1-4ubuntu5.31
不再位于 Precise 存储库中,因为最新版本是1.0.1-4ubuntu5.32
。但该软件包仍可在“Ubuntu 安全团队”。
对于版本1.0.1-4ubuntu5.31
wget https://launchpad.net/~ubuntu-security/+archive/ubuntu/ppa/+build/7531893/+files/openssl_1.0.1-4ubuntu5.31_amd64.deb
sudo dpkg -i openssl_1.0.1-4ubuntu5.31_amd64.deb
但我怀疑你必须降级列出的其他软件包这里。
降级是暂时的。
sudo apt-get upgrade
或者为了更好的感觉
sudo apt-get dist-upgrade
我们将再次安装最新版本。
答案2
根据https://launchpad.net/ubuntu/+source/openssl,任何 12.04(Precise Pangolin)存储库中都不再有1.0.1-4ubuntu5.31
该软件包的版本。openssl
openssl
截至今日(2015-12-30),12.04唯一可用的版本是:
1.0.1-4ubuntu5.32
来自main
存储库updates
和security
频道(2015-12-07)1.0.1-4ubuntu3
来自main
存储库的release
频道(2012-04-19)
您要降级到的版本1.0.1-4ubuntu5.31
已被替换,不再可用。您只能降级至1.0.1-4ubuntu3
,如果你不介意使用 3 年前的版本(可能包含一些严重的错误和安全漏洞!)或者找到一个 PPA 托管一个不太过时的版本的openssl
。
答案3
Apt 只能安装存储库中实际存在的内容。被取代的软件包将从存储库中删除。Debian 在 snapper.debian.org 上以兼容 apt-get 的形式提供其存储库的旧版本,但我不知道有任何直接适用于 Ubuntu 的版本。
旧版本的 ubuntu 软件包可在启动板上下载。遗憾的是,查找它们的过程并不特别明显。据我所知,您必须手动下载此类软件包并使用 dpkg -i 安装它们
如果你在启动板上访问源包(例如https://launchpad.net/ubuntu/+source/openssl)您可以点击“查看完整发布历史记录”。这将带您进入一个包含大量版本的页面。找到您想要的版本,它将带您进入该版本的页面(例如https://launchpad.net/ubuntu/+source/openssl/1.0.1-4ubuntu5.31) 在该页面上,您将找到针对不同架构的构建链接,这些页面将提供从源代码构建的软件包的下载链接。然后您可以下载它们。
注意:在这种情况下,构建链接转到引用“安全团队 PPA”的页面。据我所知,这是因为安全更新首先在 PPA 中构建,然后才迁移到主 ubuntu 档案中。
PS 请注意,“openssl”二进制包包含工具。openssl 库(我认为您真正关心的)位于“libssl1.0.0”包中。
PPS 如果您不想在下次运行 apt-get upgrade 或类似程序时再次升级该软件包,您将需要设置某种形式的保留或固定来阻止它这样做。