Question:
Que dois-je mettre dans le fichier foo.spec pour que les RPM suppriment le RPM précédent avant l'installation?
La description:
J'ai créé un fichier de spécifications qui crée des rpm pour quelques packages qui utilisent la même source et fournissent le même service, chacun avec une configuration légèrement différente. Par exemple, ils fournissent chacun la même "capacité"
Voici un exemple des éléments essentiels auxquels ressemble mon fichier .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}
Lorsque j'installe le premier, il s'installe correctement. J'enlève ensuite le premier, puis j'installe le second, qui fonctionne bien aussi.
J'installe ensuite le premier, suivi immédiatement par l'installation du second, et ils s'installent tous les deux l'un sur l'autre, mais je m'attendais à ce que le second soit supprimé avant d'installer le second.
Exemple de session:
# 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
Que dois-je mettre dans le fichier foo.spec pour que les RPM suppriment le RPM précédent avant l'installation?
Merci,
.dave.
Réponses:
Vous voulez que ces packages entrent en conflit les uns avec les autres, afin que yum sache qu'ils ne peuvent pas être installés simultanément.
la source