Ich konfigurieren eine Spec-Datei zum Erstellen von RPM-Datei, die sein Basispaket benötigt. Erst spec RPM config:RPM erfordern selbst
%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}
Dann mache ich ein Update auf meinem SPEC beim Bau die zweiten:
%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
In meinem CentOS (7) -Client, bekam ich diese Fehlermeldung, wenn die zweite Drehzahl der Installation Datei diesen Befehl ausführen:
[[email protected] ~]# 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
[[email protected] ~]#
Die Idee hier ist:
I Wenn jemand meine RPM-Datei auf ihrem System installiert hat. Später, wenn mein Programm einen Fehler hat, muss ich einen Patch erstellen, um es zu reparieren (Dieser Patch sollte nur für 1 Build Ziel sein). Dies bedeutet, dass ich die RPM-Datei zum Hochladen ins Repository erstellen muss. Dann können sie auf dem Client-PC "yum update ovcore" ausführen, um meinen Patch-Fix anzuwenden.
Schätzen Sie für jede Hilfe!
Danke Aaron für Ihre Kommentare, ich habe die Protokolle aktualisiert. Bitte überprüfen. Ja, ich bin der ursprüngliche Autor des Programms ovcore. – Khate
Meine Antwort gilt immer noch. Die zweite sollte * nicht * die erste erfordern. RPM ist nicht für Live-Patching. Die nächste Version Ihres RPM wird die vorherige Version vollständig ersetzen. –