使用apt-get无法安装特定的软件包版本。

我正在尝试运行以下命令来安装特定版本的libssl:
apt-get install libssl1.0.0=1.0.1-4ubuntu5.13

截至目前,最新版本是1.0.1-4ubuntu.14,但在我进行一些测试之前,我想要较早的版本。然而,我遇到了错误:
"E: Version '1.0.1-4ubuntu5.13' for 'libssl1.0.0' was not found

如果我对1.0.1-4ubuntu5.14运行相同的命令,它可以工作。所以,我猜可能是我需要在/etc/apt/sources.list中添加一个软件源,但是我不知道哪个软件源可能有我需要的内容,也不知道要添加什么条目。


您可以从这里或者这里下载适用于Ubuntu 14.04的libssl1.0.0_1.0.1e-3ubuntu1_amd64的.deb文件。 - user224082
1个回答

旧的软件包会从Ubuntu仓库中删除,不会保留。你可以直接从debs安装,但如果你想以apt方式进行操作,最好的选择是在系统上创建一个本地仓库文件夹,将deb文件放在那里,让apt源知道这个本地仓库,然后安装特定版本。

另一个选择是在Launchpad服务器上创建自己的PPA,然后你就可以从任何计算机直接获取(警告:Debian打包相对简单,但仍需要了解Linux和有关编码/构建软件的一些知识)。

你也可以将 Ubuntu(或 Debian)的最新版本的仓库添加到你的源中,安装所需的软件包,然后删除该源。这种方法的缺点是,未来的 apt-get 可能会替换该软件包,除非你利用 pinning


2从deb安装将使其apt感知,因为apt依赖于dpkg,而dpkg能够感知从任何地方安装的deb包。更大的问题是,apt会要求您升级到最新版本。 - saiarcot895
@saiarcot895 它是有意识的,但它不会为你拉取依赖项。 - crasic
意识到它已经安装了 - crasic
1对于依赖项(假设它们可以满足),只需运行sudo apt-get install -f即可。 - saiarcot895
@saiarcot895 嗯,今天我学到了一件新事情。但是设置一个本地仓库非常简单,如果你要频繁拉取很多的deb包,那么使用本地仓库管理它们会变得非常方便。比如说,如果你编译了一个自定义版本并替换了本地仓库文件夹中的原有版本,它将会顺利升级而不会出现任何问题。 - crasic