安装特定软件包版本(可在 Launchpad 上获得)

安装特定软件包版本(可在 Launchpad 上获得)

我正在尝试固定通过aptUbuntu 20.04 安装的软件包。不幸的是,旧版本的软件包似乎很快就被删除了,例如:

apt install -y git=1:2.25.1-1ubuntu3.6

产量:

E: Version '1:2.25.1-1ubuntu3.6' for 'git' was not found

在 Launchpad 上查看完全相同的软件包版本:https://launchpad.net/ubuntu/+source/git/1:2.25.1-1ubuntu3.6我可以下载该.deb文件并安装它。

我如何才能知道apt在 Launchpad 存储库中搜索此包?这可能吗?如果转到构建页面,它似乎列在~ubuntu-security私有 PPA 下,我无法添加:

# add-apt-repository ppa:ubuntu-security/ppa
Adding private PPAs is not supported currently

(但我不确定我是否正确使用它)。

答案1

Launchpad 的历史库不是与 apt 兼容的存储库。用户操作也无法使其成为兼容的存储库。

目前没有已知工具可以使 Launchpad 与 apt 兼容。(那将是一场支持噩梦!)

您必须手动浏览并下载您想要的 deb。

答案2

在尝试解决这个问题时,我发现 Debian 维护了他们完整软件包存储库的快照(例如http://snapshot.debian.org/archive/debian/20230804T031641Z/)。您可以添加此快照作为 apt 的源 - 并且这应该(我相信)始终导致安装完全相同的软件包:

echo 'deb [trusted=yes] http://snapshot.debian.org/archive/debian/20230804T031641Z/ bullseye main' > /etc/apt/sources.list.d/snapshot.list && \
    printf "Package: r-*\nPin: origin snapshot.debian.org\nPin-Priority: 990\n" > /etc/apt/preferences.d/snapshot && \
    apt -o Acquire::Check-Valid-Until=false update

当现在apt install -y curl这样做时你应该总能得到7.74.0-1.3+deb11u7

不幸的是,Debian 快照(在我测试的短时间内)非常慢且不可靠;所以如果有人能制作它的商业版本就太好了。

相关内容