Springe zum Hauptinhalt

RPM

Tipps und Tricks

Beim builden von RPMs erhalte ich die Fehlermeldung: RPM build errors: Installed (but unpackaged) file(s) found:

Das RPM (ab Redhat 9) mag es nicht, wenn Dateien zwar "installiert" werden (%install -Sektion), dann aber in der Fileliste fehlen. In dem Fall schlägt das RPM-Erstellen fehl. Abhilfe bringt das Anpassen des Spec-Files (fehlende Files in %install löschen oder mit einpacken) oder ausnahmsweise im Specfile folgende Makros definieren:

%define _unpackaged_files_terminate_build     0
%define _missing_doc_files_terminate_build    0

Was verbirgt sich in den debuginfo-RPMs?

Debuginfo-Pakete werden normalerweise bei jedem Buildprozess generiert. Darin enthalten sind unstripped (mit Debuggersymbolen) Binarys und Bibliotheken sowie die zugehörigen Quellen. Binaries sind unter /usr/lib/debug/, die Quellen unter /usr/src/debug/ zu finden.

Eine coole GUI zum gdb ist ddd.

Wie kann ich das Entfernen von Symbole aus Objektfiles (strippen) verhindern?

RPM strippt (vgl. man 1 strip) automatisch Objektfiles (Binaries und Bibliotheken). Dadurch benötigen die Files deutlich weniger Speicherplatz. Werden die Symbole z.B. bei Kernelmoduln oder Plugins benötigt, kann man RPM durch die Definition folgender Makros im Specfile anweisen, die Objekte nicht zu strippen:

%define __spec_install_post /usr/lib/rpm/brp-compress || :

Beim Erstellem/Rebuilden von RPMs erhalte ich den Fehler: Could not open %files file */debugfiles.list: No such file or directory

Hier ist das extrahieren von Debuginfos aus den Binaries nicht möglich oder fehlgeschlagen. Mit folgenden Tags im Specfile kann man verhindern, daß debuginfo-Pakete erzeugt werden:

%define debug_package %{nil}

Wie kann ich RPMS erstellen ohne ein SPEC-File zu schreiben?

Mit dem Werkzeug checkinstall wird der make install -Prozess überwacht und die installierten Files in ein RPM verpackt.

Mit welchem Werkzeug können Paketformate konvertiert werden?

Alien konvertiert rpm, dpkg, usw.

Wie kann die Konformität von RPM-Paketen geprüft werden?

Mit dem Werkzeug rpmlint <paket.rpm> können RPM-Paketen auf allgemeine Fehler untersucht werden. Die Untersuchung von Source-RPMS mit rpmlint macht Fehler und Warnungen für das Spec-File sichtbar.