0
我配置一個spec文件來構建需要基本包的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)客戶端,我安裝第二轉的時候得到這個錯誤文件來執行這個命令:
[[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] ~]#
在這裏的主要思想是:
我f某人在他們的系統上安裝了我的RPM文件。後來如果我的程序有一個bug,那麼我需要創建一個修補程序來修復它(這個修補程序應該只針對1個版本)。這意味着,我需要創建補丁RPM文件上傳到存儲庫。 然後,在客戶端PC中,他們可以執行「yum update ovcore」來應用我的修補程序修補程序。
感謝您的幫助!
謝謝Aaron的評論,我已經更新了日誌。請檢查一下。是的,我是程序ovcore的oringinal作者。 – Khate
我的答案仍然適用。第二個應該*不*要求第一個。 RPM不適用於實時修補。下一個版本的RPM將完全取代之前的版本。 –