Рейтинг:3

Как работает репозиторий apt для поиска доступных пакетов?

флаг ro

Например, у меня есть эта подходящая Ubuntu (21.10) хранилище для postgres в моем источники.list.d:

deb http://apt.postgresql.org/pub/repos/apt/impish-pgdg основной 13

Что приводит к apt-получить обновление получить:

Попадание: 4 http://apt.postgresql.org/pub/repos/apt impish-pgdg InRelease
Получить:5 http://apt.postgresql.org/pub/repos/apt impish-pgdg/main Пакеты amd64 [247 КБ]

По умолчанию показанные пакеты, например, через Политика apt-кэша postgresql-plpython3-13 показать только последнюю дополнительную версию этого пакета (= 13.5):

postgresql-plpython3-13:
  Установлено: (нет)
  Кандидат: 13.5-1.pgdg100+1
  Таблица версий:
     13,5-1.пгдг100+1 500
        500 http://apt.postgresql.org/pub/repos/apt impish-pgdg/main Пакеты amd64

Я внимательно изучил структуру репозитория и нашел несколько более старых второстепенных версий для этих пакетов, расположенных в: http://apt.postgresql.org/pub/repos/apt/pool/main/p/postgresql-13/

Часть структуры каталогов выглядит так:

дист/
  озорной-pgdg/
  (...)
    13/
    главный/
    InRelease
    Выпускать
    (...)
бассейн/
  главный/
    п/
    (...)
      postgresql-13/
      (...)
        postgresql-plpython3-13_13.5-1.pgdg100%2B1_amd64.deb
        (...)
  • Вопрос: Как работает алгоритм поиска пакетов? Как я могу сообщить apt или настроить запись в списке исходников, чтобы отображать/запоминать все младшие версии пакета, доступные в репозитории?

Например пакет выше в версии 13.1, нет 13.5?

Рейтинг:1
флаг zw

Действительно APT сначала сканирует дисты папка. В вашем случае это http://apt.postgresql.org/pub/repos/apt/dists/impish-pgdg/ .

Это приносит InRelease для определения доступных компонентов:

Компоненты: основные 9,6 10 11 12 13 14

Таким образом, вы получите пакеты, определенные в Пакеты файл главный, 9.6, 10, 11, 12, 13, 14 версии.

Файл пакетов для 13 точно содержат поля:

Версия: 13.5-1.pgdg21.10+1

так вот почему 13.5 доступен от главная 13 источники.список линия.

FireEmerald avatar
флаг ro
Таким образом, это означает, что нет никакого способа получить другие (более старые) версии из подкаталога внутри `pool`, которые будут перечислены apt, если эти версии не являются частью файла (файлов) _Packages_?
N0rbert avatar
флаг zw
Да, вот как это работает. Подробнее см. на странице https://wiki.debian.org/DebianRepository/Format.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.