RPMs selber bauen
Schlomo Schapiro
Principal Consultant
Leitung Virtualisierung & Open Source
11.12.2008
S L A C
2 | probusiness group © 2008
Agenda
RPM Pakete
Motivation
HOWTO
Beispiele
Dieser Vortrag ist eine kurze Einleitung in das ...
3 | probusiness group © 2008
RPM Pakete
Inhalt
Metadaten
Wer, was, woher usw.
Abhängigkeiten und Widersprüche
Dateien
Akti...
4 | probusiness group © 2008
RPM Pakete
Standardisierter Name:
Name
Version
Release
Architektur
Source Pakete
Alle Quellda...
5 | probusiness group © 2008
Dependency Hell
Querverbindungen (A braucht C-1.0, B braucht C-2.0)
Zyklische Abhängigkeit (A...
6 | probusiness group © 2008
Lösungen für Paketkonflikte
Selber mitdenken
--force oder –nodeps
„schlaueren“ Paketmanager b...
7 | probusiness group © 2008
Motivation
8 | probusiness group © 2008
Software Management mit RPM
RPM ist die Basis von SUSE, Red Hat, Mandrake usw.
RPM Features
I...
9 | probusiness group © 2008
Systemmanagement mit RPM
Konfigurationen und Einstellungen als RPM verteilen
Einfachster Weg ...
10 | probusiness group © 2008
/.../schlomo10
|-- i386
|-- i586
|-- i686
|-- noarch
|-- repodata
`-- x86_64
RPMMD/YUM Repo:...
11 | probusiness group © 2008
Repositories bauen (Skripte)
#!/bin/bash
REPO=/media/install/schlomo10
KEY=9e62229e
rm -Rfv ...
12 | probusiness group © 2008
HOWTO
13 | probusiness group © 2008
Nützliche Kommandos
Installieren: rpm -Uhv
Informieren: rpm -q [-i] [-l]
RPM-Datei: -p
Datei...
14 | probusiness group © 2008
RPM auseinandernehmen
rpm -q
--changelog
--scripts und --triggers
--dump und –list
--info
--...
15 | probusiness group © 2008
RPM bauen
1. Quellen zusammentragen
2. SPEC Datei schreiben
3. 1000x testen
4. RPM in Reposi...
16 | probusiness group © 2008
SPEC Datei
Felddefinitonen: Name, Version, Release, URL, License,
Requires, Obsoletes, BuilR...
17 | probusiness group © 2008
Typische Probleme
Konflikte mit Dateien anderer RPMs
Datei patchen und nicht ausliefern
Das ...
18 | probusiness group © 2008
Typische Probleme – Crossplattform
Saubere Skripte verwenden (32bit – 64bit)
Unterschiedlich...
19 | probusiness group © 2008
openSUSE Build Service
http://build.opensuse.org
Automatisiertes System zum Erstellen von RP...
20 | probusiness group © 2008
Beispiele
21 | probusiness group © 2008
Postfix Nullclient Konfiguration
Systemmanagement per RPM
Im Beispiel für SUSE Systeme
/etc/...
22 | probusiness group © 2008
Programminstallation
wmx (http://www.all-day-breakfast.com/wmx/)
Einfachster (aber cooler) W...
23 | probusiness group © 2008
Crossplattform, Subpakete
Relax & Recover (http://rear.sourceforge.net)
Vollautomatisches Li...
24 | probusiness group © 2008
Links
Sammelstelle für SUSE Linux Entwicklerdoku:
http://de.opensuse.org/Entwicklerdokumenta...
25 | probusiness group © 2008
Fragen & Antworten
Schlomo Schapiro
Principal Consultant
Leitung Virtualisierung und Open So...
26 | probusiness group © 2008
0 89/99 22 95-0
0 70 31/4 63 83-65
0 61 96/5 61 42-0
02 11/38 54 66-0
05 11/6 00 66-0
0 40/1...
Nächste SlideShare
Wird geladen in …5
×

SLAC 2008 RPMs selber bauen

864 Aufrufe

Veröffentlicht am

RPM kommen nur von der Distribution ? Eigentlich ist es ganz einfach, ein RPM Paket zu erstellen. Im Ergebnis unterstützen RPM Pakete die Systemautomatisierung und Standardisierung.

Sinn und Nutzen von Paketierung

RPM Paketen unter die Haube geschaut - technische Details

Best Practice - Erstellung eigener Pakete

Dependency Hell - Wie RPM kaputt geht

openSUSE Build Service - bauen lassen

Paketierung für Maintainer (Unterpakete, Cross-Plattform, Doku ...)

Veröffentlicht in: 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
864
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
2
Aktionen
Geteilt
0
Downloads
5
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

SLAC 2008 RPMs selber bauen

  1. 1. RPMs selber bauen Schlomo Schapiro Principal Consultant Leitung Virtualisierung & Open Source 11.12.2008 S L A C
  2. 2. 2 | probusiness group © 2008 Agenda RPM Pakete Motivation HOWTO Beispiele Dieser Vortrag ist eine kurze Einleitung in das Thema mit einigen Schwerpunkten aus der praktischen Arbeit. Guter Kurs mit Übungen: http://www.gurulabs.com/GURULABS-RPM-LAB/GURULABS-RPM-GUIDE-v1.0.PDF
  3. 3. 3 | probusiness group © 2008 RPM Pakete Inhalt Metadaten Wer, was, woher usw. Abhängigkeiten und Widersprüche Dateien Aktionen Skripte Trigger Signatur Verpackt mit CPIO und komprimiert bzip2 (SLE/openSUSE < 11, Red Hat usw.) lzma (SLE/openSUSE ab 11)
  4. 4. 4 | probusiness group © 2008 RPM Pakete Standardisierter Name: Name Version Release Architektur Source Pakete Alle Quelldateien Bauanleitung (.spec Datei) Repositories RPMs, Metadaten und Signatur RPMMD/YUM, YaST/ZYPP
  5. 5. 5 | probusiness group © 2008 Dependency Hell Querverbindungen (A braucht C-1.0, B braucht C-2.0) Zyklische Abhängigkeit (A-1.0 braucht B-1.0 braucht A-2.0) Umbenennung (A braucht C, B braucht C, aber D erfüllt auch C und ist besser), manchmal bei Packman Paketen und SUSE Versionen (A braucht B-1.0, es ist nur B-1.1 oder B-2.0 verfügbar) Optionale Abhängigkeiten werden mitinstalliert Unterschiedliche Paketierer teilen Pakete in unterschiedliche Subpakete auf (a, liba, liba-devel, a- doc ...)
  6. 6. 6 | probusiness group © 2008 Lösungen für Paketkonflikte Selber mitdenken --force oder –nodeps „schlaueren“ Paketmanager benutzen (smart, apt-rpm ...) Zuerst mehr deinstallieren und dann sauber mit korrekten Abhängigkeiten installieren Problematisches RPM selber neu bauen (mit modifizierten Abhängigkeiten) ... sonst droht nur Stress bei jeder RPM Installation
  7. 7. 7 | probusiness group © 2008 Motivation
  8. 8. 8 | probusiness group © 2008 Software Management mit RPM RPM ist die Basis von SUSE, Red Hat, Mandrake usw. RPM Features Inventarisierung Validierung der Paketquellen und installierten Systeme Abhängigkeiten & Konflikte Updates und Patche Dateien und Skripte Optimale Plattform für Softwaremanagement Perfekte Integration in Betriebssystem
  9. 9. 9 | probusiness group © 2008 Systemmanagement mit RPM Konfigurationen und Einstellungen als RPM verteilen Einfachster Weg zur Standardisierung Lohnt sich meist schon ab wenigen Systemen Paketinhalte: Dateien Skripte zur Konfiguration und zur Validierung VORSICHT: Paketkonflikte zu Konfigurationsdateien vermeiden!
  10. 10. 10 | probusiness group © 2008 /.../schlomo10 |-- i386 |-- i586 |-- i686 |-- noarch |-- repodata `-- x86_64 RPMMD/YUM Repo: Repositories (selber machen) Relevant: RPMMD/YUM und YaST Repositories Inhalt RPMs und Metadaten Patterns und Signaturen Repository selber bauen: Verzeichnisbaum erstellen RPMs hineinkopieren RPMs signieren Metadaten generieren Metadaten signieren Veröffentlichen
  11. 11. 11 | probusiness group © 2008 Repositories bauen (Skripte) #!/bin/bash REPO=/media/install/schlomo10 KEY=9e62229e rm -Rfv $REPO/{repodata,.olddata}/* rpm --resign -v $REPO/*/*rpm createrepo -v $REPO gpg -a --detach-sign $REPO/repodata/repomd.xml gpg -a --export $KEY > $REPO/repodata/repomd.xml.key RPMMD/YUM Repo erstellen und signieren: %_signature gpg %_gpg_path /root/.gnupg %_gpg_name Schlomo Schapiro <schlomo@schapiro.org> %_gpgbin /usr/bin/gpg --use-agent ~/.rpmmacros
  12. 12. 12 | probusiness group © 2008 HOWTO
  13. 13. 13 | probusiness group © 2008 Nützliche Kommandos Installieren: rpm -Uhv Informieren: rpm -q [-i] [-l] RPM-Datei: -p Datei aus Dateisystem: -f Wer liefert: --whatprovides Wer braucht: --whatrequires Validieren: rpm -V Chroot: rpm -r </path/to/root> ... Optionen: --nodeps, --force, --noscripts
  14. 14. 14 | probusiness group © 2008 RPM auseinandernehmen rpm -q --changelog --scripts und --triggers --dump und –list --info --provides --requires unrpm (build Paket auf SUSE) rpm2cpio <xyz.rpm> | cpio -i -d
  15. 15. 15 | probusiness group © 2008 RPM bauen 1. Quellen zusammentragen 2. SPEC Datei schreiben 3. 1000x testen 4. RPM in Repository stellen und verteilen Werkzeuge und Pfade rpmbuild -ta, rpmbuild -ba /usr/src/packages/{SOURCES,SPECS,BUILD,RPMS,SRPMS} /etc/rpm/*, ~/.rpmmacros
  16. 16. 16 | probusiness group © 2008 SPEC Datei Felddefinitonen: Name, Version, Release, URL, License, Requires, Obsoletes, BuilReqs, BuildArch, Provides ... Variablen %{version} Macros %setup %patch %configure %makeinstall Sektionen %description %prep %build %install %files %clean %changelog %package ... Skripte %pre %post %preun ... Anweisungen %defattr(-,root,root) %config(noreplace) ... Am Besten bei existierenden .spec Dateien abschreiben :-)
  17. 17. 17 | probusiness group © 2008 Typische Probleme Konflikte mit Dateien anderer RPMs Datei patchen und nicht ausliefern Das andere RPM ersetzen Falsche (ungenügende) Abhängigkeiten Weil ein benötigtes Paket auf dem Build-System schon da war Saubere Build-Umgebung nutzen Mehrfache Installation oder Updates funktionieren nicht Sauber testen und mit Skripten usw. abfangen config(noreplace) ... nutzen
  18. 18. 18 | probusiness group © 2008 Typische Probleme – Crossplattform Saubere Skripte verwenden (32bit – 64bit) Unterschiedliche Distros (und auch Versionen einer Distro) haben kleinere und größere Unterschiede: *-devel Pakete lib*, *lib Pakete Unterschiedliche Namen für dasselbe, z.B. wodim/cdrecord oder iproute/iproute2 usw. Schwierig zu testen openSUSE Build Service nutzen, build Fedora hat eigene (strengere) Standards Mandrake ?
  19. 19. 19 | probusiness group © 2008 openSUSE Build Service http://build.opensuse.org Automatisiertes System zum Erstellen von RPM und DEB Paketen für (fast) alle Distributionen und Versionen Einfachste Bedienung: SPEC Datei u.ä. hochladen Quellen hochladen bzw. verknüpfen Ziele definieren Kompilieren lassen Download über RPMMD/YUM Repositories http://download.opensuse.org/repositories/home:/XXX/
  20. 20. 20 | probusiness group © 2008 Beispiele
  21. 21. 21 | probusiness group © 2008 Postfix Nullclient Konfiguration Systemmanagement per RPM Im Beispiel für SUSE Systeme /etc/sysconfig/postfix SuSEconfig --module postfix Allgemeingültige Lösung post Skript: postconf -e inet_protocols=ipv4 inet_interfaces=localhost relayhost=mail.dmz mydestination= Keine Integration mit Distributionswerkzeugen
  22. 22. 22 | probusiness group © 2008 Programminstallation wmx (http://www.all-day-breakfast.com/wmx/) Einfachster (aber cooler) Windowmanager Installation per configure, make, make install Klassisches Beispiel für RPM aus Quelltext
  23. 23. 23 | probusiness group © 2008 Crossplattform, Subpakete Relax & Recover (http://rear.sourceforge.net) Vollautomatisches Linux Disaster Recovery Unterschiedliche Pakete auf SUSE, Red Hat usw. Aufteilung in Subpakete (als Beispiel)
  24. 24. 24 | probusiness group © 2008 Links Sammelstelle für SUSE Linux Entwicklerdoku: http://de.opensuse.org/Entwicklerdokumentation Fedore Core Developer Guide (RPMs): http://docs.fedoraproject.org/developers-guide/ch-rpm-building.html Novell Kernel Module Build HowTo: http://developer.novell.com/wiki/index.php/Using_Novell%27s_Kernel_Module_Build_Services http://developer.novell.com/wiki/index.php/Kernel_Module_Packaging_HOWTO RPM Doku: http://www.gurulabs.com/GURULABS-RPM-LAB/GURULABS-RPM-GUIDE-v1.0.PDF (sehr gute Anleitung) http://www.tu-chemnitz.de/docs/lindocs/RPM/ http://docs.fedoraproject.org/drafts/rpm-guide-en/ http://www.novell.com/coolsolutions/feature/11793.html (build utility) http://en.opensuse.org/SUSE_Build_Tutorial (openSUSE build server, build utility) http://de.opensuse.org/Build_Service/Installationsanleitung (openSUSE build service) http://en.opensuse.org/Build_Service/cross_distribution_package_how_to (crossplattform RPM) RPM Hell: http://www.germane-software.com/~ser/Files/Essays/RPM_Hell.html http://en.wikipedia.org/wiki/Dependency_hell
  25. 25. 25 | probusiness group © 2008 Fragen & Antworten Schlomo Schapiro Principal Consultant Leitung Virtualisierung und Open Source probusiness Berlin AG Potsdamer Platz 11 D-10785 Berlin berlin@probusiness.de +49 30 259378 0 Open Source Reklame: ● Linux Disaster Recovery: Relax & Recover (http://rear.sourceforge.net) ● VMware VI3 Backup & DR: easyVCB (http://easvcb.sourceforge.net) ● OpenVPN Gateway Builder: OGB (http://ogb.schlomo.schapiro.org) ● RSYNC BACKUP MADE EASY: RBME (http://rbme.schlomo.schapiro.org) Vorträge: ● http://www.schapiro.org/schlomo ● http://www.probusiness.de
  26. 26. 26 | probusiness group © 2008 0 89/99 22 95-0 0 70 31/4 63 83-65 0 61 96/5 61 42-0 02 11/38 54 66-0 05 11/6 00 66-0 0 40/18 88 28-0 info@probusiness.de www.probusiness.de 0 30/25 93 78-0 Ihr Kontakt zu uns

×