apt 存储库如何查找可用的软件包?

apt 存储库如何查找可用的软件包?

例如我有这个 apt ubuntu (21.10)存储库对于我的 postgres sources.list.d

deb http://apt.postgresql.org/pub/repos/apt/ impish-pgdg main 13

其结果是apt-get update获取:

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]

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

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/

部分目录结构如下:

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

答案1

真正的 APT 首次扫描地区文件夹。在你的情况下是http://apt.postgresql.org/pub/repos/apt/dists/impish-pgdg/

它获取正在发布确定可用组件:

Components: main 9.6 10 11 12 13 14

因此你将获得在套餐文件主要的9.6101112十三14版本。

13 的软件包文件确切包含字段:

Version: 13.5-1.pgdg21.10+1

这就是为什么 13.5 可以从main 13 来源列表线。

相关内容