2

Я получаю конфликты зависимостей при попытке запустить простое yum update . Я заметил, что в некоторых случаях он ищет пакет с именем foo w.x-y.z.el6 то время как в репозитории есть только foo w.x-y.z.el6_a.b , где a.b - это что-то вроде «2.1» или «2.9». Спецификации для имен файлов RPM не упоминают это подчеркивание битого - что это значит?

2 ответа2

5

у vonbrand все это правильно.

В вашем примере версия wx-yzel6_a.b означает, что номер вышестоящей версии - это wx, а версия вашего локального дистрибутива (обычно номер патча или сборки) - yzel6_a.b.

Это отличается от версии wx-yzel6, которая является той же версией для основной ветки разработки (wx), но другой версией локального дистрибутива (yzel6). Они не одна и та же версия.

Что касается разницы между yzel6 и yzel6_a.b, это будет зависеть от конкретного синтаксиса раздела, который полностью зависит от того, как человек / группа, составляющая пакет, внутренне нумерует свои версии. Для пакетов из Red Hat наблюдаемое вами изменение обычно относится к другой сборке в пределах одного уровня патча. Исходный код может быть идентичен для двух версий, но они скомпилированы для разных версий RHEL6 (например, 6.3 против 6.4). Они могут зависеть от разных версий glibc или других общих библиотек.

Например, только что примененное мной обновление заменило cups-1.4.2-48.el6_3.3.x86_64.rpm на cups-1.4.2-50.el6_4.4.x86_64.rpm. Оба являются сборками кубков версии 1.4.2. Насколько я понимаю соглашение Red Hat, пакет был обновлен с уровня патча 48 до 50 и теперь построен на RHEL 6.4 (против 6.3). Я не уверен, что означает окончательное «.4» против «.3» - у меня есть несколько пакетов, где версия заканчивается на "el6", некоторые заканчиваются на "el6_3", некоторые на "el6_4", некоторые на "el6_4" .1 ", некоторые в" el6_4.4 "и т.д. Конечно, поскольку все эти номера версий зависят от дистрибутива, мне нужно найти какой-то документ Red Hat, чтобы быть уверенным.

Таким образом, для вашего примера, эти два пакета представляют собой различные исправления / сборки одной и той же исходной версии исходного кода, но конкретное значение помимо этого потребует запроса источника пакета.

1

Имя пакета RPM: <name> - <версия> - <localrelease>. <Arch> .rpm. <Name> - это имя пакета (очень может быть что-то вроде funky-gui-devel-libs, '-' s разделяющие элементы считаются с конца), <версия> является версией выше (нет '-'!), <localrelease> является локальной версией (может быть несколько раундов патчей на одной и той же исходной базе, обычно она включает в себя целевая система), <arch> - это архитектура. Подчеркивание - это просто разделитель, который здесь не является «-».

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .