질문:
설치하기 전에 RPM이 이전 RPM을 제거 할 수 있도록 foo.spec 파일 에 무엇을 넣 습니까?
기술:
동일한 소스를 사용하고 각각 약간 씩 다른 구성으로 동일한 서비스를 제공하는 몇 가지 패키지에 대해 rpm을 작성하는 스펙 파일을 작성했습니다. 예를 들어 이들은 각각 동일한 "기능"을 제공합니다
내 .spec 파일이 다음과 같은 필수 요소의 예입니다 .
%define version 1234
%define name foo
%define release 1
%define pkgname %{name}-%{version}-%{release}
Name: %{name}
Version: %{version}
Release: %{release}
Provides: %{name}
%package one
Summary: Summary for foo-one
Group: %{group}
Obsoletes: %{name} <= %{version}
Provides: %{name} = %{version}
%description one
Blah blah blah
%package two
Summary: Summary for foo-two
Group: %{group}
Obsoletes: %{name} <= %{version}
Provides: %{name} = %{version}
%description two
Blah blah blah
# %prep, %install, %build and %clean are pretty simple
# and omitted here for brevity sake
%files one
%defattr(-,root,root,-)
%{_prefix}/%{pkgname}
%files two
%defattr(-,root,root,-)
%{_prefix}/%{pkgname}
첫 번째를 설치하면 정상적으로 설치됩니다. 그런 다음 첫 번째 것을 제거한 다음 두 번째 것을 설치하면 잘 작동합니다.
그런 다음 첫 번째 것을 설치 한 다음 두 번째 것을 즉시 설치하고 두 개를 하나씩 설치하지만 두 번째 것을 설치하기 전에 두 번째 것이 제거 될 것으로 기대했습니다.
세션 예 :
# rpmbuild foo and copy rpms to yum repo
$ yum install foo-one
...
$ yum list installed|grep foo
foo-one.noarch 1234-1 @myrepo
$ yum install foo-two
...[Should say that it is removing foo-one, but does not]...
$ yum list installed|grep foo
foo-one.noarch 1234-1 @myrepo
foo-two.noarch 1234-1 @myrepo
$ rpm -q --provides foo-one
foo = 1234
foo-one = 1234-1
$ rpm -q --provides foo-two
foo = 1234
foo-two = 1234-1
설치하기 전에 RPM이 이전 RPM을 제거 할 수 있도록 foo.spec 파일 에 무엇을 넣 습니까?
감사합니다,
.dave.
1
어둠 속에서 촬영 : 쓸데없는 것이 아닌가?
—
Charles
패키지와 그 결과 배포 (바이너리, 구성 또는 둘 다)의 차이점은 무엇입니까?
—
nearora 2016
무엇이 다른가요? PHP 앱, 구성 및 PHP 코드를 패키징하고 있기 때문에.
—
fatehks 2016 년