Dummy Rpm

Aus Fedorawiki.de

Wechseln zu: Navigation, Suche
Dieser Artikel ist Teil der Tipps & Tricks Sammlung

Inhaltsverzeichnis

Einfache Version

Ein Dummy-RPM kann dazu verwendet werden, Abhängigkeiten selbst zu beheben oder einfach nur Dateien zu erstellen und bei der Deinstallation wieder zu entfernen. Im folgenden Beispiel wird einfach nur eine leere Datei /usr/lib/libtestdrivedummy.so.1 erzeugt:

dummy-rpm.spec:

Name: dummy-rpm
Version: 1.0
Release: 0
Summary: This is a dummy package
Group: dummy
License: GPL
BuildRoot: %{_tmppath}/%{name}-root
Provides: libtestdrivedummy.so.1
Requires: rpm
%description
a dummy package
%prep
%install
%post
touch /usr/lib/libtestdrivedummy.so.1
%preun
rm -f /usr/lib/libtestdrivedummy.so.1
%clean
rm -rf $RPM_BUILD_ROOT
%files


Aufwändigere Version

Als Alternativ-Vorschlag ein dummy-Paket, das RPM-Paketkonflikte bei der Installation erkennen läßt und die Dateiabfrage mit rpm -qf /usr/lib/libirgendwas.so.1 erlaubt. Nachteil, das Anlegen der Dateien ist etwas aufwändiger. Vorsicht! Wie auch das obige Paket, löscht Deinstallation die eingetragenen Dateien.

dummy-rpm.spec:

Name: dummy-rpm
Version: 1.0
Release: 1
Summary: Dummy package
Group: dummy
License: GPL
BuildRoot: %{_tmppath}/%{name}-root
Provides: libtestdrivedummy.so.1
%description
This is a dummy package.
%prep
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/usr/lib
touch $RPM_BUILD_ROOT/usr/lib/libtestdrivedummy.so.1
%post
touch /usr/lib/libtestdrivedummy.so.1
%clean
rm -rf $RPM_BUILD_ROOT
%files
%ghost /usr/lib/libtestdrivedummy.so.1


Anmerkung Anmerkung: Sollte ein Paket gemacht werden, sollte auch der Eintrag %changelog nicht fehlen.


Erstellen des RPM

rpmbuild -bb dummy-rpm.spec

oder sollte ein src-Paket auch gemacht werden,

rpmbuild -ba dummy-rpm.spec

Installation:

rpm -ihv /usr/src/redhat/RPMS/i386/dummy-rpm-1.0-0.i386.rpm

Deinstallation:

rpm -e dummy-rpm

Rpmbuild als User

Es wird allgemein empfohlen Sourcen und somit auch RPMs als User zu kompilieren. Siehe dazu die Bemerkungen bei Rpmbuild.