首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么没有找到一些旧版本的包?

为什么没有找到一些旧版本的包?
EN

Ask Ubuntu用户
提问于 2022-02-14 14:37:16
回答 2查看 1.6K关注 0票数 5

我正在尝试配置一个构建引擎(Bazel)来使用gcc-7。为此,我需要指向所需的所有.deb包的链接。

gcc-7的依赖关系之一是libatomic1 (>= 7.5.0-6 ubuntu2)。我意识到这是“大于或等于”,但如果我想使用gcc-7发行的原始图书馆,我在哪里可以得到它们?

例如,如果我做了apt download --print-uris libatomic1=7.5.0-6ubuntu2,为什么要告诉我:

代码语言:javascript
复制
E: Version '7.5.0-6ubuntu2' for 'libatomic1' was not found

但是,当我执行apt show libgcc-7-dev时,我会看到libatomic1>=7.5.0-6ubuntu2被列为依赖项。我在哪里能找到这个脂原子1=7.5.0-6 ubuntu2?

我在想,我可能会在http://old-releases.ubuntu.com/ubuntu/pool/main/g/gcc-7/中找到库包,但它不在那里。

EN

回答 2

Ask Ubuntu用户

回答已采纳

发布于 2022-02-14 14:57:23

如果您检查这里,您将看到安全更新取代了旧版本。由于安全原因,旧版本不再可用。

我使用“焦点”作为发行版在packages.ubuntu.com进行搜索。

旧版本无法使用的另一个原因是,libatomic1的标准版本不再由gcc-7构建。正如您可以看到的这里,当前版本的Ubuntu焦点是建立在gcc-10 (在右边的"Ubuntu“下)。

如果你愿意,你可以下载gcc-7的源代码,然后从那里构建libatomic1。这可能不是你想要做的事情,但这是可能的。

可以在/etc/apt/sources.list文件中启用源,然后运行:

代码语言:javascript
复制
sudo apt source gcc-7

或者您可以从packages.ubuntu.com下载源代码,在右侧,您将看到三个下载源代码的选项。

此外,应该注意的是,如果要构建某些内容,则需要下载所需的构建依赖关系:

代码语言:javascript
复制
sudo apt build-dep gcc-7
票数 6
EN

Ask Ubuntu用户

发布于 2022-02-15 02:22:52

Apt存储库通常只包含给定版本的包的一个版本。如果您想要旧的Ubuntu包,那么afaict,您必须查看“发布历史”上的源代码包。然后,您可以跟踪到特定版本的链接,然后是到构建的链接,最后是指向各个包的链接。

但是,我不相信7.5.0-6ubuntu 2版本的libatomic1包确实存在。当一个新的主要版本gcc的源代码包被添加到Debian或Ubuntu发行版中时,它将接管gcc运行时支持库的库包(libgcc、lib原子、libasan等)。

然后在下一次上传时修改前一个主要版本的源代码包,使其不再构建已被新的主要版本接管的包,如果不以这种方式修改,那么我很确定上传将被归档软件拒绝(我知道它在Debian中,我对Ubuntu的归档设置不太熟悉)

您可以下载最新的gcc-7源代码包,并对其进行修改以重新启用库的构建,但是这样做可能会导致更多的问题,而不是解决问题。

票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1392870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档