После большего копания я понял это.
TL;DR
Штифт: отпустить X=Y
фильтрует поля файла Release, используя сокращенную нотацию. В файле релиза версия должна быть версией выпускать. например) для Debian яблочко вы могли бы Пин: выпуск v=11
, или для Ubuntu Jammy у вас может быть Пин: выпуск v=22.04
. Происхождение должно имя автора или поставщика. например.) Пин: релиз o=LP-PPA-mozillateam
.
Пин: версия X
фильтрует версию пакета. например.) Пин: версия 1:91
.
Пин: происхождение X
фильтры по имени хоста. например.) PIN-код: источник ppa.launchpad.net
.
Файл выпуска
в Определение версии пакета и свойств дистрибутива
часть мужчина apt_preferences
мы находим это.
Расположение, указанное в файле sources.list(5), должно предоставлять файлы Packages и Release для описания пакетов, доступных в этом расположении.
Таким образом, каждое местоположение (которое имеет происхождение) имеет файл выпуска для каждого доступного выпуска.По этой ссылке мы видим, что файл релиза размещен по адресу dists/$DIST/InRelease
.
На моей локальной машине у нас есть
$ apt-кэш-политика
500 http://ppa.launchpad.net/mozillateam/ppa/ubuntu jammy/main Пакеты amd64
выпуск v=22.04,o=LP-PPA-mozillateam,a=jammy,n=jammy,l=стабильные сборки Firefox ESR и Thunderbird,c=main,b=amd64
источник ppa.launchpad.net
Здесь вы можете видеть, что моя локальная машина использует варенье
выпускать. Таким образом, соответствующий файл выпуска находится по адресу dists/jammy/InRelease
. Это дает нам этот файл здесь: http://ppa.launchpad.net/mozillateam/ppa/ubuntu/dists/jammy/InRelease.
Этот файл выпуска создается лицом, размещающим репозиторий, и содержит метаинформацию о дистрибутиве. Часть информации необязательна, часть нет. Некоторые из необязательных полей включают в себя:
- Источник
- Этикетка
- Версия
- Люкс
- Кодовое имя
И некоторые из необязательных полей включают в себя:
Это то, что вы фильтруете, когда указываете Штифт: отпустить X=
в вашем файле настроек. Это также описано, когда вы запускаете политика apt-кеша
. В приведенном выше примере мы имеем:
- Источник:
о = LP-PPA-мозиллатам
- Этикетка:
л = Firefox ESR
- Версия:
v=22.04
- Люкс:
а = варенье
- Кодовое имя:
п = варенье
- Составные части:
с=основной
NB: я не смог найти ничего на справочной странице относительно б=
поле в выводе политика apt-кеша
команда.
Источник
Помимо приведенной выше информации в файле релиза, местоположение также имеет происхождение. Это также включено в вывод политика apt-кеша
команда. Как вы можете видеть на примере выше, это ppa.launchpad.net
.
Это то, что вы фильтруете, когда включаете Пин: происхождение X
в вашем файле настроек.
в Влияние настроек APT
раздел страницы руководства, в нем есть это полезное предложение:
Это не следует путать с источником дистрибутива, указанным в файле выпуска.То, что следует за тегом «Origin:» в файле Release, — это не интернет-адрес, а имя автора или поставщика, например «Debian» или «Ximian».
Версия
Назад к Определение версии пакета и свойств дистрибутива
раздел справочной страницы.
Как упоминалось выше, в нем говорится:
Расположение, указанное в файле sources.list(5), должно предоставлять файлы Packages и Release для описания пакетов, доступных в этом расположении.
Итак, помимо этого файла выпуска, у нас также есть файл пакетов. Далее на странице руководства говорится:
Только две строки в каждой записи [файла пакета] имеют отношение к установке приоритетов APT:
Пакет: линия
    дает имя пакета
Версия: линейка
    указывает номер версии указанного пакета
Это отличается от того, что написано в поле «Версия» Выпускать файл, для которого он говорит
Версия: линейка
    называет версию выпуска. Например, пакеты в дереве могут принадлежать выпуску Debian версии 11.
Если мы найдем один из этих файлов пакетов, мы увидим это. Для пакета выше, для моей архитектуры, это здесь: http://ppa.launchpad.net/mozillateam/ppa/ubuntu/dists/jammy/main/binary-amd64/Packages.xz
В этом сжатом архиве у нас есть Пакеты
файл, который содержит список всех доступных пакетов и их версий (и много другой информации). Вот часть одного из многих доступных пакетов:
Пакет: громовая птица
Приоритет: необязательно
Раздел: почта
Установленный размер: 227239
Сопровождающий: команда Ubuntu Mozilla <[email protected]>
Архитектура: amd64
Версия: 1:91.5.1+build1-0ubuntu1
Эта версия - то, против чего вы подходите, когда включаете Пин: версия X
в вашем файле настроек.
Если вы запустите политика apt-кеша
для определенного пакета вы можете увидеть версии, доступные для этого пакета.
Политика $ apt-cache Thunderbird
громовая птица:
Установлено: 1:78.14.0-1~deb11u1
Кандидат: 1:78.14.0-1~deb11u1
Таблица версий:
1:91.5.1+build1-0ubuntu1 500
500 http://ppa.launchpad.net/mozillateam/ppa/ubuntu jammy/main Пакеты amd64
1:91.5.1-1+b2 10
10 http://ftp.us.debian.org/debian нестабильно/основные пакеты amd64
1:91.5.0-2~deb11u1 500
500 http://security.debian.org/debian-security bullseye-security/main Пакеты amd64
*** 1:78.14.0-1~deb11u1 900
900 http://deb.debian.org/debian bullseye/main Пакеты amd64
100 /var/lib/dpkg/status
Путаница с версией
Похоже, что версия, указанная в файле релиза, не всегда кажется правильной. Например, для Google Chrome у нас есть это:
$ apt-кэш-политика
900 http://dl.google.com/linux/chrome/deb stable/main пакеты amd64
выпуск v=1.0,o=Google LLC,a=стабильный,n=стабильный,l=Google,c=main,b=amd64
источник dl.google.com
Я не уверен, что должна представлять эта версия, поскольку она не соответствует версиям в файле пакетов:
$ grep "Пакет\|Версия" /var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_main_binary-amd64_Packages
Пакет: google-chrome-beta
Версия: 99.0.4844.17-1
Пакет: google-chrome-стабильный
Версия: 98.0.4758.80-1
Пакет: google-chrome-unstable
Версия: 100.0.4867.0-1