使用 madison 安装未列出的特定版本

使用 madison 安装未列出的特定版本

我正在尝试安装特定版本的 CrateDB,例如:

$sudo apt-get -s install crate=2.1.8-1~wheezy

但是没有找到这个包。

运行“apt-cache madison”仅显示最新版本:

$sudo apt-cache madison crate
     crate | 2.2.3-1~wheezy | https://cdn.crate.io/downloads/apt/stable wheezy/main amd64 Packages
     crate | 2.2.3-1~wheezy | https://cdn.crate.io/downloads/apt/stable wheezy/main i386 Packages

sources.list 中的 Crate.io 存储库:

deb https://cdn.crate.io/downloads/apt/stable/ wheezy main
deb-src https://cdn.crate.io/downloads/apt/stable/ wheezy main

所有实际可用的版本(包括 2.1.8-1~wheezy ): https://cdn.crate.io/downloads/apt/stable/pool/main/c/crate/

我怎样才能让 apt 看到所有可用的软件包而不仅仅是最新的软件包?

(我使用的是 Ubuntu 16.04.1 LTS)

答案1

Debian 存储库(包括 Ubuntu)设计为一个软件包只有一个候选版本。默认情况下,这是该版本可用的最新版本。您无法更改这一点 - 它是上游的,版本在存储库的 Release 文件中指定。

警告:除非您真的知道自己在做什么,否则在 Ubuntu 中使用 Debian 软件包通常是不明智的。这有很多原因。

警告:可以降级软件包,但不支持。如果您尝试了,但不管出于什么原因,它都不起作用,那么您能得到的最好建议就是恢复到适合您的 Ubuntu 版本的正确版本。错误版本的软件包可能会导致各种依赖性问题。(这就是 Debian 存储库不玩这个游戏的原因)

步骤 1:将软件包下载到您可以再次找到它的位置。在本例中,我们将其放入下载目录中:

wget -o ~/Downloads/ https://cdn.crate.io/downloads/apt/stable/pool/main/c/crate/crate_2.1.8-1~wheezy_all.deb

第 2 步:卸载较新的包,安装较旧的包:

sudo apt remove crate
sudo apt install ~/Downloads/crate_2.1.8-1~wheezy_all.deb

步骤 3:防止 apt 自动升级 crate

sudo apt-mark hold crate
sudo apt-mark unhold crate <---- Someday (not today) you will need this to undo the hold

答案2

感谢您提醒我们注意这个问题。- 这是因为我们使用 reprepo 工具来管理我们的 Debian 和 Ubuntu 存储库,不幸的是,该工具存在限制,即每个软件包和发行版仅允许一个版本。我们将迁移我们的发布基础架构,以使用允许我们保留旧版本的东西。

然而,对于 Ubuntu,建议从我们的 DEB 版本安装 CrateDB 包 (https://cdn.crate.io/downloads/deb/...),并非我们的 APT,正如声明的那样这里

相关内容