2016-05-09 8 views
2

У меня возникли проблемы с использованием rpm и . Yum не получит пакеты, необходимые для обновления. Я выполняю обновление основного пакета с 16.1 по 16.2. Если я ня обновить, я получаю это:Почему rpm/yum не забирает нужные пакеты, когда я перечисляю его конкретно?

# yum upgrade 
... 
====================================================================================================== 
Package      Arch   Version      Repository   Size 
====================================================================================================== 
Updating: 
sub-package     x86_64   1.1-455015.el7    privaterepo   29 k 
main-package     noarch   16.2-460032.el7    privaterepo   1.9 M 
... 

Если я бег ни обновления основного-пакет я получаю это:

# yum upgrade main-package 
====================================================================================================== 
Package      Arch   Version     Repository    Size 
====================================================================================================== 
Updating: 
main-package     noarch   16.2-460032.el7   privaterepo   1.9 M 

Transaction Summary 
====================================================================================================== 

Это, кажется, не думает, что мне нужна новый суб-пакет, даже если RPM предположить, что он делает:

# rpm -q --requires -p main-package-16.2-460032.el7.noarch.rpm | grep -i sub-package 
sub-package >= 1.1 

# rpm -qa | grep sub-package 
sub-package-1.0-455013.el7.x86_64 

Основываясь на том, что я вижу, когда я yum upgrade main-package, он должен увидеть, что ему нужен sub-package> = 1.1 и получить его также. Я должен добавить, что установка работает нормально. Это как если бы оборотов и ням полностью игнорируя требование основного пакета нуждается версии 1.1 суб-пакета.

EDIT:

Вот что обороты показывает о зависимости:

# rpm -q --provides -p sub-package-1.1-455015.el7.x86_64.rpm 
sub-package 
sub-package = 1.1-455015.el7 
sub-package(x86-64) = 1.1-455015.el7 

# rpm -q --requires -p main-package-16.2-460032.el7.noarch.rpm | grep sub-package 
sub-package >= 1.1 

Вот старший суб-пакет, который уже установлен:

# rpm -q --provides sub-package 
sub-package 
sub-package = 1.0-455013.el7 
sub-package(x86-64) = 1.0-455013.el7 

Вот соответствующая информация в моем файле спецификации:

$ grep sub-package main-package.spec 
Requires: sub-package >= 1.1 

$ head -n4 sub-package.spec 
Summary: sub-package (...) 
Name: sub-package 
Version: 1.1 
Release: %{BUILD_NUMBER}%{?dist} 

EDIT 2:

Я делал немного больше рыть, одна вещь, которую я заметил, что суб-пакет указан дважды, если я оборотов в минуту -q --whatprovides суб-пакет, где другие зависимости, которые он получает, указаны только один раз.

+0

Похоже, что 'sub-package 1.1-455015.el7' * доступен *, но что в настоящее время установлено? Если это «1.1-somethingelse», тогда требования выполняются. –

+0

# rpm -qa | grep sub-package sub-package-1.0-455013.el7.x86_64 – icub3d

+0

Это было там все время? Не знаю, как я это пропустил ... извините, не знаю тогда. –

ответ

0

anwser, благодаря @alvits, что я имел

Provides: sub-package 

в суб-пакета спецификации файла. Подсказка приходит от этой линии:

# rpm -q --provides -p sub-package-1.1-455015.el7.x86_64.rpm 
sub-package 
sub-package = 1.1-455015.el7 
sub-package(x86-64) = 1.1-455015.el7 

первая строка вывода говорит оборотов, что моя версия суб-пакета удовлетворяет все версии.