RPM требуют себя

Я настраиваю спецификационный файл для сборки RPM-файла, для которого требуется базовый пакет. Первая спецификация RPM:

%global _installDir  /opt
%global _name        ovcore
%global _build       1
%global _version     1.2.1.R01
%global _release     1

Summary:      First RPM Version
Name:         %{_name}
Version:      %{_version}.%{_build}
Release:      %{_release}
License:      Free.
Group:        OV
URL:          http://free-core.vn
BuildRoot:    %{_tmppath}/%{_name}
Provides:     %{_name} = %{version}-%{release}

Затем я обновляю свой SPEC при сборке второго:

%global _installDir  /opt
%global _name        ovcore
%global _build       10
%global _version     1.2.1.R01
%global _release     1

Summary:      Second RPM Version
Name:         %{_name}
Version:      %{_version}.%{_build}
Release:      %{_release}
License:      Free.
Group:        OV
URL:          http://free-core.vn
BuildRoot:    %{_tmppath}/%{_name}
Provides:     %{_name} = %{version}-%{release}
Requires:     %{_name} = 1.2.1.R01.1-1

В моем клиенте CentOS (7) я получил эту ошибку при установке второго файла rpm, выполнив эту команду:

[root@localhost ~]# yum install --debuglevel=10 --rpmverbosity=10  ovcore
install ovcore
Loading "fastestmirror" plugin
Config time: 0.007
Yum version: 3.4.3
rpmdb time: 0.000
Setting up Package Sacks
local                                                                                                                                                | 2.9 kB  00:00:00
local/x86_64/primary_db                                                                                                                              | 1.9 kB  00:00:00
Determining fastest mirrors
pkgsack time: 0.058
Checking for virtual provide or file-provide for install
No package install available.
Obs Init time: 0.000
Resolving Dependencies
--> Running transaction check
---> Package ovcore.x86_64 0:1.2.1.R01.10-1 will be installed
Checking deps for ovcore.x86_64 0:1.2.1.R01.10-1 - u
looking for ('ovcore', 'EQ', ('0', '1.2.1.R01.1', '1')) as a requirement of ovcore.x86_64 0:1.2.1.R01.10-1 - u
looking for ('/bin/sh', None, (None, None, None)) as a requirement of ovcore.x86_64 0:1.2.1.R01.10-1 - u
looking for ('/bin/sh', None, (None, None, None)) as a requirement of ovcore.x86_64 0:1.2.1.R01.10-1 - u
ovcore-1.2.1.R01.10-1.x86_64 requires: ovcore = 1.2.1.R01.1-1
--> Processing Dependency: ovcore = 1.2.1.R01.1-1 for package: ovcore-1.2.1.R01.10-1.x86_64
Searching pkgSack for dep: ovcore
Potential resolving package ovcore-1.2.1.R01.1-1.x86_64 has newer instance in ts.
--> Finished Dependency Resolution
Dependency Process ending
Depsolve time: 0.385
Error: Package: ovcore-1.2.1.R01.10-1.x86_64 (local)
           Requires: ovcore = 1.2.1.R01.1-1
           Available: ovcore-1.2.1.R01.1-1.x86_64 (local)
               ovcore = 1.2.1.R01.1-1
               ovcore = 1.2.1.R01-1
           Installing: ovcore-1.2.1.R01.10-1.x86_64 (local)
               ovcore = 1.2.1.R01.10-1
               ovcore = 1.2.1.R01-1
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest
[root@localhost ~]#

Основная мысль здесь следующая:

Если кто-то установил мой файл RPM в своей системе. Позже, если в моей программе есть ошибка, мне нужно создать патч, чтобы исправить ее (этот патч должен быть предназначен только для 1 сборки). Это означает, что мне нужно создать RPM-файл патча для загрузки в репозиторий. Затем на клиентском ПК они могут выполнить «yum update ovcore», чтобы применить мое исправление.

Благодарим за любую помощь!


person Khate    schedule 26.04.2016    source источник


Ответы (1)


1.2.1.R01.10-1 (установка версии) != 1.2.1.R01.1-1 (явно требуется во второй спецификации). Почему вы говорите, что для этого вообще требуется старая версия самого себя?

Другие примечания:

  • Номера сборки, вероятно, должны быть указаны в поле выпуска, если только вы не являетесь первоначальным автором упаковываемой программы.
  • Вы не должны начинать свои переменные с _, потому что вы можете случайно затоптать внутренние.
person Aaron D. Marasco    schedule 26.04.2016
comment
Спасибо, Аарон, за ваши комментарии, я обновил журналы. Пожалуйста, проверьте это. Да, я оригинальный автор программы ovcore. - person Khate; 27.04.2016
comment
Мой ответ все еще актуален. Второй не должен не требовать первого. RPM не предназначен для оперативного исправления. Следующая версия вашего RPM полностью заменит предыдущую. - person Aaron D. Marasco; 28.04.2016