Pertanyaan:
Apa yang harus saya letakkan di file foo.spec sehingga RPM akan menghapus RPM sebelumnya sebelum menginstal?
Deskripsi:
Saya telah membuat file spesifikasi yang membuat rpm untuk beberapa paket yang menggunakan sumber yang sama dan menyediakan layanan yang sama, masing-masing dengan konfigurasi yang sedikit berbeda. Misalnya mereka masing-masing memberikan "kemampuan" yang sama
Berikut ini contoh hal-hal penting yang terlihat seperti file .spec saya :
%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}
Ketika saya menginstal yang pertama, itu menginstal ok. Saya kemudian menghapus yang pertama, dan kemudian menginstal yang kedua, itu berfungsi dengan baik juga.
Saya kemudian menginstal yang pertama, segera diikuti dengan menginstal yang kedua, dan mereka berdua menginstal, satu di atas yang lain, tapi, saya berharap yang kedua akan dihapus sebelum menginstal yang kedua.
Sesi contoh:
# 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
Apa yang harus saya letakkan di file foo.spec sehingga RPM akan menghapus RPM sebelumnya sebelum menginstal?
Terima kasih,
.dave.
Jawaban:
Anda ingin membuat paket-paket itu saling bertentangan , sehingga Anda tahu bahwa mereka tidak dapat diinstal secara bersamaan.
sumber