Рейтинг:3

Difference between `Pin: release v` and `Pin: version` in apt preferences file

флаг cn

I can't seem to find anything related to the difference between Pin: version 5.8 and Pin: release v=5.8 in the documentation for the apt preferences file.

Do they do the same thing or have differences?

Also there is a similar occurrence between Pin: origin "origin" and Pin: release o=origin.

Terrance avatar
флаг id
См. `man apt_preferences` и https://help.ubuntu.com/community/PinningHowto.
dylanmorroll avatar
флаг cn
Я просмотрел это, но, похоже, он не ответил на вопросы, которые я задаю, если только я что-то не пропустил.
Terrance avatar
флаг id
В `man apt_preferences` около строки 335+ есть много ваших ответов, которые вы спрашиваете.
Someone avatar
флаг my
Ваш вопрос слишком широк... Пожалуйста, отредактируйте, чтобы он ограничивался только одним вопросом
dylanmorroll avatar
флаг cn
Я отредактировал вопрос.
dylanmorroll avatar
флаг cn
@Terrance Я вижу, что там говорится об указании версии через «Pin: release v=», но я не вижу упоминания о «Pin: version»?
Terrance avatar
флаг id
Обычно в «man-файле» содержится то, что поддерживается в настройках и т. д. «Пин-код: версия» может больше не поддерживаться.
N0rbert avatar
флаг zw
«Пин-код: версия» по-прежнему поддерживается. Только что проверил 21.10. Также проверьте https://wiki.debian.org/AptConfiguration?action=show&redirect=AptPreferences#apt_preferences_.28APT_pinning.29.
Рейтинг:3
флаг cn

После большего копания я понял это.

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
muru avatar
флаг us
Если для Ubuntu 22.04 это `выпуск v=22.04`, то похоже, что это версия дистрибутива, а не версия пакета. Я могу представить, например, третью сторону для распространения чего-то вроде, скажем, Nodejs или PostgreSQL, устанавливающую несколько каналов для каждого основного выпуска программного обеспечения и соответствующим образом устанавливающую версию дистрибутива. У Chrome нет такой модели выпуска, поэтому они, вероятно, просто установили фиктивное значение 1.0.

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

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