Einführung in die Erstellung
 von Software-Paketen mit
dem RPM Package Manager
  Lenz Grimmer <lenz@grimmer.com>
       20...
Inhalt
●   Hintergrund / Historie
●   Funktionen / Arbeitsweise
●   Installation von RPM-Paketen
●   Erstellen von RPM-Pak...
Hintergrund/Historie
●   Paketmanagementsystem und
    Dateiformat
●   1997 von Eric Troan und Marc Ewing
    (Red Hat) en...
Funktionen / Arbeitsweise
●   Erstellung/Installation/Deinstallation
    von Softwarepaketen
●   Konsistenzprüfung (MD5-Ch...
Vorteile
●   Einfache, rückstandsfreie Deinstallation
●   Plattform-/Architekturunabhängig
●   Automatisierbar (rpmlib)
● ...
Installation von RPM-Paketen
●   Paketformat: gzip-komprimierte cpio-
    Datei mit Header
●   Plattformspezifische Pakete...
Erstellen von RPM-Paketen


                 rpmbuild
foo­x.y.tar.gz
                             foo­x.y­0.src.rpm



foo...
Sources / Patches
●   „Pristine Sources“ - Original Quellarchiv
    soll möglichst erhalten bleiben
●   Notwendige Modifik...
.spec-Datei
●   Header (Metainformationen)
●   Bauanleitung
●   Scripts/Trigger
●   Dateilisten
●   Abhängigkeiten
●   Mac...
Build-Phasen
●   %prep – Vorbereitung der Quellen
    ●   Extrahieren
    ●   Patchen
●   %build – Übersetzung der Quellen...
Abhängigkeiten
●   Requires:
●   PreReq:
●   Provides:
●   Conflicts:
●   Obsoletes:
●   BuildRequires:
●   BuildPreReq:
Scripts / Trigger
●   %pre
●   %post
●   %preun
●   %postun
●   %triggerin
●   %triggerun
●   %triggerpostun
minimale .spec-Datei
#
# A very minimal specfile
#
Name: demo
Version: 1.2
Release: 0
Group: Applications/Utilities
Licens...
Live-Demo
Hinweise
●   Immer mit BuildRoot arbeiten
●   Pakete bauen ohne root-Rechte
●   chroot()-Umgebung zur Konsistenzsicherung ...
Weitere Informationen / Links
●   Alternative Paketmanagement-Systeme
    ●   DEB/dpkg (z.B. Debian, Ubuntu, Fink):
      ...
Links / Dokumentation
●   RPM: http://rpm.org/ / http://rpm5.org/
●   RPM Guide:
    http://docs.fedoraproject.org/drafts/...
Fragen / Diskussion
Vielen Dank!




lenz@grimmer.com
Nächste SlideShare
Wird geladen in …5
×

Einfuehrung in die Erstellung von Software-Paketen mit dem RPM Package Manager

2.549 Aufrufe

Veröffentlicht am

A slide deck (in German) about creating RPM packages that I gave at a GUUG meeting at TU Harburg (Germany) on 2008-03-13

Veröffentlicht in: Bildung, Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
2.549
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
4
Aktionen
Geteilt
0
Downloads
2
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Einfuehrung in die Erstellung von Software-Paketen mit dem RPM Package Manager

  1. 1. Einführung in die Erstellung von Software-Paketen mit dem RPM Package Manager Lenz Grimmer <lenz@grimmer.com> 2008-03-13, TU Harburg
  2. 2. Inhalt ● Hintergrund / Historie ● Funktionen / Arbeitsweise ● Installation von RPM-Paketen ● Erstellen von RPM-Paketen ● Weitere Informationen / Links
  3. 3. Hintergrund/Historie ● Paketmanagementsystem und Dateiformat ● 1997 von Eric Troan und Marc Ewing (Red Hat) entwickelt ● Basis vieler Linux-Distributionen (RHEL, Fedora, SLES, openSUSE, CentOS, Mandriva) ● AIX, OpenSolaris, MacOS X, OpenPKG
  4. 4. Funktionen / Arbeitsweise ● Erstellung/Installation/Deinstallation von Softwarepaketen ● Konsistenzprüfung (MD5-Checksummen / GPG-Signaturen) ● Überprüfung von Abhängigkeiten / Kollisionen bei Installation ● Meta-Daten (Name, Version, Lizenz, Konfigurationsdateien, Dokumentation) ● Zentrale Datenbank
  5. 5. Vorteile ● Einfache, rückstandsfreie Deinstallation ● Plattform-/Architekturunabhängig ● Automatisierbar (rpmlib) ● Original-Quellarchive + Patches im Quellpaket enthalten ● Sicherung von Konsistenz & Authentizität ● Reproduzierbare Builds
  6. 6. Installation von RPM-Paketen ● Paketformat: gzip-komprimierte cpio- Datei mit Header ● Plattformspezifische Pakete (z.B. i586, sparc, ppc) ● Überprüfung der Abhängigkeiten ● Pre-/Postinstallations-Scripts ● Trigger ● RPM-Datenbank /var/lib/rpm
  7. 7. Erstellen von RPM-Paketen rpmbuild foo­x.y.tar.gz foo­x.y­0.src.rpm foo.spec foo.patch foo­x.y­0.i586.rpm
  8. 8. Sources / Patches ● „Pristine Sources“ - Original Quellarchiv soll möglichst erhalten bleiben ● Notwendige Modifikationen über separate patch-Dateien (optional) ● Multiple Sourcen/Patches möglich
  9. 9. .spec-Datei ● Header (Metainformationen) ● Bauanleitung ● Scripts/Trigger ● Dateilisten ● Abhängigkeiten ● Macros: /usr/lib/rpm
  10. 10. Build-Phasen ● %prep – Vorbereitung der Quellen ● Extrahieren ● Patchen ● %build – Übersetzung der Quellen ● configure ; make ● %install – Installation ● make install ● %files - Dateilisten
  11. 11. Abhängigkeiten ● Requires: ● PreReq: ● Provides: ● Conflicts: ● Obsoletes: ● BuildRequires: ● BuildPreReq:
  12. 12. Scripts / Trigger ● %pre ● %post ● %preun ● %postun ● %triggerin ● %triggerun ● %triggerpostun
  13. 13. minimale .spec-Datei # # A very minimal specfile # Name: demo Version: 1.2 Release: 0 Group: Applications/Utilities License: GPL Summary: A demo package %description The most simple package possible
  14. 14. Live-Demo
  15. 15. Hinweise ● Immer mit BuildRoot arbeiten ● Pakete bauen ohne root-Rechte ● chroot()-Umgebung zur Konsistenzsicherung / Reproduzierbarkeit ● lokal:build (openSUSE) oder mock (Fedora) ● openSUSE Build Service: http://build.opensuse.org/ ● Fedora Koji: http://koji.fedoraproject.org/koji/
  16. 16. Weitere Informationen / Links ● Alternative Paketmanagement-Systeme ● DEB/dpkg (z.B. Debian, Ubuntu, Fink): http://www.debian.org/doc/FAQ/ch-pkg_basics ● Conary: http://wiki.rpath.com/wiki/Conary ● Auf RPM aufsetzend ● Yum: http://linux.duke.edu/projects/yum/ ● Smart RPM: http://smartrpm.org ● apt-rpm: http://apt-rpm.org/
  17. 17. Links / Dokumentation ● RPM: http://rpm.org/ / http://rpm5.org/ ● RPM Guide: http://docs.fedoraproject.org/drafts/rpm-guide-en/ ● Maximum RPM: http://rpm5.org/docs/max-rpm.html ● RPM HOWTO: http://www.tldp.org/HOWTO/RPM-HOWTO/ ● Creating Quality RPMs (pdf): http://www.gurulabs.com/goodies/guru+guides.php
  18. 18. Fragen / Diskussion
  19. 19. Vielen Dank! lenz@grimmer.com

×