首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >apt存储库是如何找到可用的包的?

apt存储库是如何找到可用的包的?
EN

Ask Ubuntu用户
提问于 2022-02-04 08:12:19
回答 1查看 385关注 0票数 2

例如,我在我的sources.list.d中有一个用于postgres的apt ubuntu (21.10) D1

代码语言:javascript
复制
deb http://apt.postgresql.org/pub/repos/apt/ impish-pgdg main 13

这将导致apt-get update来获取:

代码语言:javascript
复制
Hit:4 http://apt.postgresql.org/pub/repos/apt impish-pgdg InRelease
Get:5 http://apt.postgresql.org/pub/repos/apt impish-pgdg/main amd64 Packages [247 kB]

默认情况下,显示的包(例如通过apt-cache policy postgresql-plpython3-13 )只显示该包的最新次要版本(= 13.5):

代码语言:javascript
复制
postgresql-plpython3-13:
  Installed: (none)
  Candidate: 13.5-1.pgdg100+1
  Version table:
     13.5-1.pgdg100+1 500
        500 http://apt.postgresql.org/pub/repos/apt impish-pgdg/main amd64 Packages

我深入研究了存储库结构,并为位于:http://apt.postgresql.org/pub/repos/apt/pool/main/p/postgresql-13/中的这些包找到了各种旧的次要版本。

目录结构的一部分类似于:

代码语言:javascript
复制
dists/
  impish-pgdg/
  (...)
    13/
    main/
    InRelease
    Release
    (...)
pool/
  main/
    p/
    (...)
      postgresql-13/
      (...)
        postgresql-plpython3-13_13.5-1.pgdg100%2B1_amd64.deb
        (...)
  • 问题: apt搜索包的算法是怎样的?如何告诉apt或配置我的源列表条目以显示/记住存储库中可用的包的所有次要版本?

例如,上面提到的13.1版本的包,而不是13.5

EN

回答 1

Ask Ubuntu用户

发布于 2022-02-04 08:26:13

真的很适合首先扫描dists文件夹。在您的例子中,它是http://apt.postgresql.org/pub/repos/apt/dists/impish-pgdg/

它获取InRelease以确定可用组件:

构成部分:主要9.6 10 11 12 13 14

因此,您将在main9.61011121314版本的包文件中定义包。

13包文件确切地包含以下字段:

版本: 13.5-1.pgdg21.10+1

这就是为什么13.5可以从main 13 sources.list行获得的原因。

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

https://askubuntu.com/questions/1391065

复制
相关文章

相似问题

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