Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
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.645 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
  • Als Erste(r) kommentieren

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

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

×