Einführung in die Erstellung
 von Software-Paketen mit
dem RPM Package Manager
  Lenz Grimmer <lenz@grimmer.com>
       2008-03-13, TU Harburg
Inhalt
●   Hintergrund / Historie
●   Funktionen / Arbeitsweise
●   Installation von RPM-Paketen
●   Erstellen von RPM-Paketen
●   Weitere Informationen / Links
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
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
Vorteile
●   Einfache, rückstandsfreie Deinstallation
●   Plattform-/Architekturunabhängig
●   Automatisierbar (rpmlib)
●   Original-Quellarchive + Patches im
    Quellpaket enthalten
●   Sicherung von Konsistenz &
    Authentizität
●   Reproduzierbare Builds
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
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
Sources / Patches
●   „Pristine Sources“ - Original Quellarchiv
    soll möglichst erhalten bleiben
●   Notwendige Modifikationen über
    separate patch-Dateien (optional)
●   Multiple Sourcen/Patches möglich
.spec-Datei
●   Header (Metainformationen)
●   Bauanleitung
●   Scripts/Trigger
●   Dateilisten
●   Abhängigkeiten
●   Macros: /usr/lib/rpm
Build-Phasen
●   %prep – Vorbereitung der Quellen
    ●   Extrahieren
    ●   Patchen
●   %build – Übersetzung der Quellen
    ●   configure ; make
●   %install – Installation
    ●   make install
●   %files - Dateilisten
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
License: GPL
Summary: A demo package

%description
The most simple package possible
Live-Demo
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/
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/
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
Fragen / Diskussion
Vielen Dank!




lenz@grimmer.com

Weitere ähnliche Inhalte

PDF
Agorum core-installation-linux-6 4-0a
PDF
SLAC 2008 RPMs selber bauen
PDF
Synology Workshop07 06
PDF
Offline Arbeiten
PDF
JBoss AS 7 als Plattform moderner Enterprise-Anwendungen
PDF
Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...
PDF
Systemmanagement mit Puppet und Foreman
PDF
OSDC 2011 | FAI - Fully Automatic Installation by Thomas Lange
Agorum core-installation-linux-6 4-0a
SLAC 2008 RPMs selber bauen
Synology Workshop07 06
Offline Arbeiten
JBoss AS 7 als Plattform moderner Enterprise-Anwendungen
Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...
Systemmanagement mit Puppet und Foreman
OSDC 2011 | FAI - Fully Automatic Installation by Thomas Lange

Was ist angesagt? (20)

PDF
Typo3 und Varnish
PDF
Nagios Conference 2007 | Vmware Monitoring by Ingo Latschner
ODP
PhpStorm 6 Configuration for TYPO3
PDF
01 sqlplus
PDF
WordPress Multisite
KEY
Automatisierte Linux Administration mit (R)?ex
PDF
Ldap sqlnet
PDF
Der oracle dba_und_seine_passwoerter
PDF
Why websecurity sucks
PDF
PHP Dependency und Paket Management mit Composer
PPTX
check_sap_health
PPTX
Oracle Critical Patch Update und Patch Set Update - DOAG SIG Security 2011 - ...
PPT
PPTX
Object-orientied way of using mysqli interface - Workshop
PDF
Introduction into Oracle Data Pump 11g/12c - Export and Import Data
PDF
TYPO3 CMS 8.0 - Die Neuerungen - pluswerk
PDF
Grunt
PDF
iks auf der Jax 2010: Provisioning unter OSGi für Test und Betrieb
PDF
Upgrade auf TYPO3 6.2
PDF
Automatisierte infrastruktur mit ansible
Typo3 und Varnish
Nagios Conference 2007 | Vmware Monitoring by Ingo Latschner
PhpStorm 6 Configuration for TYPO3
01 sqlplus
WordPress Multisite
Automatisierte Linux Administration mit (R)?ex
Ldap sqlnet
Der oracle dba_und_seine_passwoerter
Why websecurity sucks
PHP Dependency und Paket Management mit Composer
check_sap_health
Oracle Critical Patch Update und Patch Set Update - DOAG SIG Security 2011 - ...
Object-orientied way of using mysqli interface - Workshop
Introduction into Oracle Data Pump 11g/12c - Export and Import Data
TYPO3 CMS 8.0 - Die Neuerungen - pluswerk
Grunt
iks auf der Jax 2010: Provisioning unter OSGi für Test und Betrieb
Upgrade auf TYPO3 6.2
Automatisierte infrastruktur mit ansible
Anzeige

Andere mochten auch (20)

PDF
Plaquette audimut
ODP
Présentation du projet d’échange 2012 2013
PDF
Fundación La Divina Providencia
PPTX
Personal 2010 Präsentation
PPTX
Notre politique RSE
PPTX
Presentacion Pucesi 001
PPTX
TXIM : les nouveaux emplacements Facebook Ads sur mobile
PDF
TXIM : ciblage des contenus des pages
DOC
PDF
Spectos Allgemeine Präsentation & Portfolio
KEY
Sentido Hotels & Resorts
PPTX
TXIM : Facebook offers et page post
PPTX
Creación de un blog
PDF
Vehicle finance lesson 2
DOCX
Planeacion 120524073932-phpapp02
PDF
Weave BT - Dynamiser votre reseau de distribution secteur pharmaceutique
PDF
Social Business in a Nutshell
PPTX
TXIM : quel impact du marketing social sur les sites d'ecommerce
PPTX
S4 unidad iv el hombre ser educable
Plaquette audimut
Présentation du projet d’échange 2012 2013
Fundación La Divina Providencia
Personal 2010 Präsentation
Notre politique RSE
Presentacion Pucesi 001
TXIM : les nouveaux emplacements Facebook Ads sur mobile
TXIM : ciblage des contenus des pages
Spectos Allgemeine Präsentation & Portfolio
Sentido Hotels & Resorts
TXIM : Facebook offers et page post
Creación de un blog
Vehicle finance lesson 2
Planeacion 120524073932-phpapp02
Weave BT - Dynamiser votre reseau de distribution secteur pharmaceutique
Social Business in a Nutshell
TXIM : quel impact du marketing social sur les sites d'ecommerce
S4 unidad iv el hombre ser educable
Anzeige

Ähnlich wie Einfuehrung in die Erstellung von Software-Paketen mit dem RPM Package Manager (20)

PDF
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
PDF
SLAC 2008 Mit SUSE Linux glücklich werden
PDF
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas Lange
PDF
Einführung in Docker
PDF
Nagios Conference 2007 | Aufbau eines hochverfügbaren Nagios Clusters by Mart...
PDF
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
PDF
Atmel AVR RISC μC unter GNU/Linux programmieren
PDF
OpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
PDF
systemd im Alltag
PDF
Entwicklungsumgebungen mit Vagrant
PPTX
Azure Notebooks
PPT
Dnug35 ak-dev.071111-beyond
PDF
Nagios Conference 2006 | NagiosOnCD – eine linux-basierte Live-CD mit Nagios ...
PDF
Einführung in Puppet und Vagrant
PPTX
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
PDF
Wordpress vs. Textpattern
PDF
Web Entwicklung mit PHP - Teil 1
PDF
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
PDF
FLOW3-Workshop F3X12
PDF
The Linux File System
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
SLAC 2008 Mit SUSE Linux glücklich werden
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas Lange
Einführung in Docker
Nagios Conference 2007 | Aufbau eines hochverfügbaren Nagios Clusters by Mart...
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
Atmel AVR RISC μC unter GNU/Linux programmieren
OpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
systemd im Alltag
Entwicklungsumgebungen mit Vagrant
Azure Notebooks
Dnug35 ak-dev.071111-beyond
Nagios Conference 2006 | NagiosOnCD – eine linux-basierte Live-CD mit Nagios ...
Einführung in Puppet und Vagrant
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Wordpress vs. Textpattern
Web Entwicklung mit PHP - Teil 1
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
FLOW3-Workshop F3X12
The Linux File System

Mehr von Lenz Grimmer (20)

PDF
Ceph Management and Monitoring - DevConf.CZ - 2019-01-26
PDF
Managing and Monitoring Ceph - Ceph Day Berlin - 2018-11-12
PDF
Ceph Management and Monitoring with Dashboard V2 - Cephalocon 2018-03-23
PDF
Ceph and Storage Management with openATTIC - FOSDEM 2017-02-05
PDF
Ceph and Storage Management with openATTIC - Ceph Day Munich - 2016-09-23
PDF
Ceph and Storage Management in openATTIC - solutions.hamburg - 2016-09-09
PDF
Storage Monitoring in openATTIC - Monitoring Workshop - 2016-09-07
PDF
Ceph and Storage Management with openATTIC - FrOSCon 2016-08-21
PDF
Ceph and Storage Management with openATTIC - SUSE MOST - 2016-06-07
PDF
Ceph and Storage Management with openATTIC, Ceph Tech Talks 2016-06-23
PDF
Ceph and Storage Management with openATTIC, openSUSE Conference 2016-06-23
PDF
Storage Management mit openAttic - LinuxDay - 2015-11-21
PDF
Flexibles Storage Management unter Linux mit OpenATTIC - Kielux 2015-09-18
PDF
The Evolution of Storage on Linux - FrOSCon - 2015-08-22
PDF
MySQL 5.5 Replication Enhancements – An Overview (FOSDEM 2011)
PDF
What's new in MySQL 5.5? FOSDEM 2011
PDF
MySQL High Availability Solutions
PDF
How to build your own Quadrocopter
PDF
What's new in MySQL 5.5?
PDF
ZFS unter Linux
Ceph Management and Monitoring - DevConf.CZ - 2019-01-26
Managing and Monitoring Ceph - Ceph Day Berlin - 2018-11-12
Ceph Management and Monitoring with Dashboard V2 - Cephalocon 2018-03-23
Ceph and Storage Management with openATTIC - FOSDEM 2017-02-05
Ceph and Storage Management with openATTIC - Ceph Day Munich - 2016-09-23
Ceph and Storage Management in openATTIC - solutions.hamburg - 2016-09-09
Storage Monitoring in openATTIC - Monitoring Workshop - 2016-09-07
Ceph and Storage Management with openATTIC - FrOSCon 2016-08-21
Ceph and Storage Management with openATTIC - SUSE MOST - 2016-06-07
Ceph and Storage Management with openATTIC, Ceph Tech Talks 2016-06-23
Ceph and Storage Management with openATTIC, openSUSE Conference 2016-06-23
Storage Management mit openAttic - LinuxDay - 2015-11-21
Flexibles Storage Management unter Linux mit OpenATTIC - Kielux 2015-09-18
The Evolution of Storage on Linux - FrOSCon - 2015-08-22
MySQL 5.5 Replication Enhancements – An Overview (FOSDEM 2011)
What's new in MySQL 5.5? FOSDEM 2011
MySQL High Availability Solutions
How to build your own Quadrocopter
What's new in MySQL 5.5?
ZFS unter Linux

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

  • 1. Einführung in die Erstellung von Software-Paketen mit dem RPM Package Manager Lenz Grimmer <[email protected]> 2008-03-13, TU Harburg
  • 2. Inhalt ● Hintergrund / Historie ● Funktionen / Arbeitsweise ● Installation von RPM-Paketen ● Erstellen von RPM-Paketen ● Weitere Informationen / Links
  • 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. 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. Vorteile ● Einfache, rückstandsfreie Deinstallation ● Plattform-/Architekturunabhängig ● Automatisierbar (rpmlib) ● Original-Quellarchive + Patches im Quellpaket enthalten ● Sicherung von Konsistenz & Authentizität ● Reproduzierbare Builds
  • 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. 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. Sources / Patches ● „Pristine Sources“ - Original Quellarchiv soll möglichst erhalten bleiben ● Notwendige Modifikationen über separate patch-Dateien (optional) ● Multiple Sourcen/Patches möglich
  • 9. .spec-Datei ● Header (Metainformationen) ● Bauanleitung ● Scripts/Trigger ● Dateilisten ● Abhängigkeiten ● Macros: /usr/lib/rpm
  • 10. Build-Phasen ● %prep – Vorbereitung der Quellen ● Extrahieren ● Patchen ● %build – Übersetzung der Quellen ● configure ; make ● %install – Installation ● make install ● %files - Dateilisten
  • 11. Abhängigkeiten ● Requires: ● PreReq: ● Provides: ● Conflicts: ● Obsoletes: ● BuildRequires: ● BuildPreReq:
  • 12. Scripts / Trigger ● %pre ● %post ● %preun ● %postun ● %triggerin ● %triggerun ● %triggerpostun
  • 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
  • 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. 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. 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