Debian Pakete bauen. Eine kurze Einführung. Sebastian Harl. 12. März

Ähnliche Dokumente
Debian-Paket-Bau. Eine kurze Einführung. Alexander Reichle-Schmehl Debian Projekt. 10 Juni 2010, Mini-DebConf Berlin

Debian Packaging. Sebastian Reichel

Paketverwaltung. Dr.-Ing. Matthias Sand und Dipl.-Inf. Stefan Potyra

Grundlagen des Debian-Paketverwaltungssystems Eine kurze Einführung - WS 09/10. Fatih Abut (fabut2s@smail.inf.fh-brs.de)

Maintainer Schulung (Teil 2)

Gliederung. Debian-Paketierung für Fortgeschrittene... was nach dh_make, anpassen der Templates und dpkg-buildpackage kommt.

Linux Prinzipien und Programmierung

Debian-Packaging-Tutorial. David Frey

Technische Aspekte von Custom Debian Distributions

Debian-Paketierung. Seminar Betriebssystemdienste und -administration. Christian Schubert. Hasso-Plattner-Institut. Seite

Installationsanleitung

Debian Pakete selber erstellen. Steffen Möller Night of Open Knowledge Lübeck 2013

Merkblatt System-C Installation Linux

Debian Pakete im Eigenbau

Software-Installation unter Linux

Infrastruktur. Dr.-Ing. Matthias Sand und Dipl.-Inf. Stefan Potyra

Dieser Artikel stammt aus dem Magazin von C++.de (

1. Vorbereiten das Host, folgende Software Pakete müssen installiert werden: gnome-devel bison flex texinfo libncurses5-dev git codeblocks putty

Diplomarbeit LEGO Mindstorms Simulator - JORGE Installationshandbuch.

Linux Installation Party

Programmieren II. Exkurs: Apache Maven. Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft

Paketmanagement. Alexander Günther gpg:0xebe4a38a. 16. Dezember UnFUG

php4-pakete mit Informixunterstützung für Debian Seite 1/6 PHP4 mit Informix auf Debian testing und stable (August 2005) Überblick Voraussetzungen

Composing Shops. Modulinstallation und andere coole Composer Features. (auch) für den OXID eshop... und ein bisschen Shopware ;)

DISTRIBUTION / MARKETING

Debian-Paketier-Anleitung

Installation von Asterisk

Das Debian Bug Tracking System

Renée Bäcker. Perl $foo Magazin

Freeware und sichere Quellen

RPM. Einstieg in den RPM-Paketbau. Oliver Burger obgr 25. Oktober Oktober 2012 RPM 1

Debian Installationstools

Linux-Camp: Linux als Server am Beispiel LAMP

Papertrail Softwaresuite zur Stimmzettelauszählung

Einrichten der TSM-Backup-Software unter dem Betriebssystem Ubuntu

Debian-Med. Integrative Softwareumgebung für alle medizinischen Bereiche auf der Basis von Debian GNU/Linux. Andreas Tille. Debian

Embedded-Linux-Seminare. Toolchains

Metadaten für die Informationsversorgung von morgen: Kooperativ erstellen - gemeinsam nutzen

Versionskontrollsysteme

Das CMake-Umfeld. Wolfgang Dautermann. Openrheinruhr 2016 FH JOANNEUM

Web-Services mit Go. Sebastian tokkee Harl OpenRheinRuhr 07. November 2015 Oberhausen

Tool-Chain. Übung. Eclipse, SVN, Ant, Cobertura, Metrics Labor "Software Engineering Experiment" Sebastian Meyer und Kai Stapel

Packaging and Installation Managment

Kompilieren? Ich? Bin ich Gentoo?

Freeware und sichere Quellen

Wörterbücher von MS nach Ooo konvertieren

Freie Software. (cc) Creative Commons Attribution-ShareAlike 2004 Stephan Uhlmann

Perl-Praxis CPAN. Jörn Clausen

Informatik für den Satellitenbau. Toolchains und Crosscompiler

Schulfilter Plus Installationsanleitung Debian 8

Debian-Paketier-Anleitung

Systemdateien finden und Dateien am richtigen Ort platzieren

Einführung in BioConductor

EEX Kundeninformation

DocBook für Anfänger

Schweizerisches Bundesgericht

Agenda. Warum GNU/Linux? Freie Software Geschichte Distributionen und Oberflächen Wichtige Konzepte der GNU/Linux-Benutzung Wo bekommt man Hilfe?

cloop - a transparently decompressing block device

Buildsystem. Maven & Scons. Controls Entwicklungsforum Januar 2012

Einrichten der TSM-Backup-Software unter dem Betriebssystem Ubuntu/Debian

Evolution of Volunteer Participation in Libre Software Projects: Evidence from Debian

BartPE. Dokumentation. Projektarbeit Network Services. Dozent: Wolf-Fritz Riekert. Belmondo Kovac. Autor: Andreas Dinkelacker, 3.

Redmine, das Projekt Management Werkzeug

Software und Paketverwaltung

Das Build Tool Ant. Sebastian Mancke,

PHYTEC USB-CAM Serie unter Linux

Festlegungen für die Code Entwicklung Table of contents

Web-Technologien Kick-Start

Softwarelizenzen und Open Source

Einfaches Bauen von RPM-Paketen

U1 3. Übung U1 3. Übung. Die Kommandos auf den folgenden Folien dienen der Veranschaulichung. Sind nicht direkt auf die Übungsaufgabe übertragbar

I2C Serial 2.6 LCD Modul

Literatur und Links. Webtechnologien SS 2017 Teil 1/Entwicklung

Artem Eger. Build-Systeme in java Maven & ANT

Kurzanleitung zu XML2DB

KURZANLEITUNG DUPLICITY MIT CLOUD OBJECT STORAGE

Amarok KDE 3.5.9

LibreOffice. Die freie Community-Office-Suite. 1 LibreOffice - Die freie Community-Office-Suite

Installationsanleitung für das Shopware Heidelpay Payment Standard Modul (Frontend Modul) Installationsanleitung

Keynote Der offene Ansatz: Open Source basiertes ALM ganz praktisch

OSRM - weltweites Routing mit OpenStreetMap-Daten OSRM - weltweites Routing mit OpenStreetMap-Daten

Linutronix - Wir verbinden Welten. Open Source Software in der Industrie. Firmenvorstellung

Paketverwaltung und wichtige FOSS-Anwendungen

Webtechnologien Teil 1: Entwicklungsumgebung(en)

Literatur und Links. Webtechnologien WS 2017/18 Teil 1/Entwicklung

Angewandte Kryptografie Praktikum 0

Was ist Reference Counting Implementierung. Ende. Reference Counting. Kevin Köster. Uni Hamburg. 31. März Kevin Köster Reference Counting 1/58

[HowTo] NZBGet Geschrieben von Per - 02 Aug :41

Schulfilter Plus Installationsanleitung CentOS 7

Composer für Contao Entwickler

Übersicht über das OSS-Recht

Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging

Upgrade auf TYPO3 6.2

ANT. Kurzvortrag von Manuel Schulze.

Anleitung zur Installation und Konfiguration des MySQL-Datenbanksystems

Demo Kino: Der Herr der Wolken Die Gefährten

Version 0.3. Installation von MinGW und Eclipse CDT

Praktische Anleitung zu Konfiguration von PPTP Verbindungen

Checkliste. Verantwortlich: Benedikt Pawletta K-SIPE-2 Status:

Transkript:

Debian Pakete bauen Eine kurze Einführung Sebastian Harl <Sebastian.Harl@sternwarte.uni-erlangen.de> Astronomisches Institut der Universität Erlangen-Nürnberg 12. März 2009

Überblick Innereien Beispiel Weiterführendes

Überblick Überblick

Überblick Welche Arten von Paketen gibt es? Quell-Pakete: Enthalten den Quellcode des Programms und Debian-spezifische Änderungen: beispiel 1.0.orig.tar.gz Quellcode

Überblick Welche Arten von Paketen gibt es? Quell-Pakete: Enthalten den Quellcode des Programms und Debian-spezifische Änderungen: beispiel 1.0.orig.tar.gz Quellcode beispiel 1.0-1.diff.gz Patch mit Debian-spezifischen Änderungen

Überblick Welche Arten von Paketen gibt es? Quell-Pakete: Enthalten den Quellcode des Programms und Debian-spezifische Änderungen: beispiel 1.0.orig.tar.gz Quellcode beispiel 1.0-1.diff.gz Patch mit Debian-spezifischen Änderungen beispiel 1.0-1.dsc Beschreibung des Quell-Pakets

Überblick Welche Arten von Paketen gibt es? Quell-Pakete: Enthalten den Quellcode des Programms und Debian-spezifische Änderungen: beispiel 1.0.orig.tar.gz Quellcode beispiel 1.0-1.diff.gz Patch mit Debian-spezifischen Änderungen beispiel 1.0-1.dsc Beschreibung des Quell-Pakets Binär-Pakete: Fertig übersetzt, zum installieren: beispiel 1.0-1 powerpc.deb Architektur-abhängig

Überblick Welche Arten von Paketen gibt es? Quell-Pakete: Enthalten den Quellcode des Programms und Debian-spezifische Änderungen: beispiel 1.0.orig.tar.gz Quellcode beispiel 1.0-1.diff.gz Patch mit Debian-spezifischen Änderungen beispiel 1.0-1.dsc Beschreibung des Quell-Pakets Binär-Pakete: Fertig übersetzt, zum installieren: beispiel 1.0-1 powerpc.deb Architektur-abhängig beispiel-data 1.0-1 all.deb Architektur-unabhängig

Überblick Benötigte Pakete build-essential Meta-Paket; Abhängigkeit auf essentielle Pakete mit Compilern und Bibliotheken

Überblick Benötigte Pakete build-essential Meta-Paket; Abhängigkeit auf essentielle Pakete mit Compilern und Bibliotheken debhelper Nützliche Skripte für kleine Aufgaben

Überblick Benötigte Pakete build-essential Meta-Paket; Abhängigkeit auf essentielle Pakete mit Compilern und Bibliotheken debhelper Nützliche Skripte für kleine Aufgaben dh-make Helfer zum Erstellen der ersten Schablonen eines Paketes

Überblick Benötigte Pakete build-essential Meta-Paket; Abhängigkeit auf essentielle Pakete mit Compilern und Bibliotheken debhelper Nützliche Skripte für kleine Aufgaben dh-make Helfer zum Erstellen der ersten Schablonen eines Paketes Optionale Pakete lintian Zum Prüfen auf häufige Fehler

Überblick Benötigte Pakete build-essential Meta-Paket; Abhängigkeit auf essentielle Pakete mit Compilern und Bibliotheken debhelper Nützliche Skripte für kleine Aufgaben dh-make Helfer zum Erstellen der ersten Schablonen eines Paketes Optionale Pakete lintian Zum Prüfen auf häufige Fehler pbuilder Zum Bauen in sauberen Umgebungen

Überblick Benötigte Pakete build-essential Meta-Paket; Abhängigkeit auf essentielle Pakete mit Compilern und Bibliotheken debhelper Nützliche Skripte für kleine Aufgaben dh-make Helfer zum Erstellen der ersten Schablonen eines Paketes Optionale Pakete lintian Zum Prüfen auf häufige Fehler pbuilder Zum Bauen in sauberen Umgebungen quilt oder dpatch Zum Verwalten von zusätzlichen Patches

Überblick Erstellen eines Debian-Paketes Im Idealfall ist dies ganz einfach: 1. Herunterladen des Quellcodes

Überblick Erstellen eines Debian-Paketes Im Idealfall ist dies ganz einfach: 1. Herunterladen des Quellcodes 2. Entpacken des Quellcodes

Überblick Erstellen eines Debian-Paketes Im Idealfall ist dies ganz einfach: 1. Herunterladen des Quellcodes 2. Entpacken des Quellcodes 3. Lesen der Dokumentation (evt. Installieren von benötigten Bibliotheken)

Überblick Erstellen eines Debian-Paketes Im Idealfall ist dies ganz einfach: 1. Herunterladen des Quellcodes 2. Entpacken des Quellcodes 3. Lesen der Dokumentation (evt. Installieren von benötigten Bibliotheken) 4. Aufrufen von dh make

Überblick Erstellen eines Debian-Paketes Im Idealfall ist dies ganz einfach: 1. Herunterladen des Quellcodes 2. Entpacken des Quellcodes 3. Lesen der Dokumentation (evt. Installieren von benötigten Bibliotheken) 4. Aufrufen von dh make 5. Anpassen der Dateien unterhalb von debian/

Überblick Erstellen eines Debian-Paketes Im Idealfall ist dies ganz einfach: 1. Herunterladen des Quellcodes 2. Entpacken des Quellcodes 3. Lesen der Dokumentation (evt. Installieren von benötigten Bibliotheken) 4. Aufrufen von dh make 5. Anpassen der Dateien unterhalb von debian/ 6. Paket mit debuild bauen

Überblick Erstellen eines Debian-Paketes Im Idealfall ist dies ganz einfach: 1. Herunterladen des Quellcodes 2. Entpacken des Quellcodes 3. Lesen der Dokumentation (evt. Installieren von benötigten Bibliotheken) 4. Aufrufen von dh make 5. Anpassen der Dateien unterhalb von debian/ 6. Paket mit debuild bauen 7. Fehler suchen, finden und beheben

Überblick Erstellen eines Debian-Paketes Im Idealfall ist dies ganz einfach: 1. Herunterladen des Quellcodes 2. Entpacken des Quellcodes 3. Lesen der Dokumentation (evt. Installieren von benötigten Bibliotheken) 4. Aufrufen von dh make 5. Anpassen der Dateien unterhalb von debian/ 6. Paket mit debuild bauen 7. Fehler suchen, finden und beheben 8. Benutzen :)

Innereien Innereien

Innereien Wichtige Dateien in debian/ debian/control Enthält wichtige Meta-Daten über das Source-Paket: Wer ist dafür Verantwortlich? Welche Binär-Pakete werden gebaut? Beschreibungen der Binär-Pakete?...

Innereien Wichtige Dateien in debian/ (cont d) debian/copyright Wie ist die Software lizensiert? debian/rules Wie wird das Paket eigentlich gebaut? debian/changelog Was hat sich zwischen den einzelnen Paket-Versionen geändert?

Innereien debian/control Source: tig Section: utils Priority: optional Maintainer: Sebastian Harl <sh@tokkee.org> Build-Depends: debhelper (>= 5), dpatch, dpkg-dev (>= 1.14.6), git-core, libncursesw5-dev, asciidoc (>= 7), xmlto, docbook-utils Standards-Version: 3.8.0 Homepage: http://jonas.nitro.dk/tig/ Package: tig Architecture: any Depends: git-core (>= 1.5.4), ${shlibs:depends}, ${misc:depends} Description: ncurses-based Git repository browser...

Innereien debian/copyright This package was debianized by Sebastian Harl <sh@tokkee.org> on Thu, 28 Sep 2006 13:09:36 +0200. It was downloaded from <http://jonas.nitro.dk/tig/releases/>. Upstream Author: Jonas Fonseca <fonseca@diku.dk> Copyright Holder: Jonas Fonseca <fonseca@diku.dk> License: Copyright c 2006-2009 Jonas Fonseca <fonseca@diku.dk> <GPL header> On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/gpl. The Debian packaging is c 2006-2009, Sebastian Harl <sh@tokkee.org> and is licensed under the GPL, see above.

Innereien debian/changelog tig (0.5-1) unstable; urgency=low * Initial release (Closes: #389926). -- Sebastian Harl <sh@tokkee.org> Thu, 28 Sep 2006 13:09:36 +0200

Innereien debian/rules Setzt den Dreisatz configure; make; make install um, und verpackt das Ergebnis in ein Debian-Paket.

Innereien debian/rules Setzt den Dreisatz configure; make; make install um, und verpackt das Ergebnis in ein Debian-Paket. Ein ausführbares Makefile, mit den folgenden Targets: build

Innereien debian/rules Setzt den Dreisatz configure; make; make install um, und verpackt das Ergebnis in ein Debian-Paket. Ein ausführbares Makefile, mit den folgenden Targets: build build-arch, build-indep (optional)

Innereien debian/rules Setzt den Dreisatz configure; make; make install um, und verpackt das Ergebnis in ein Debian-Paket. Ein ausführbares Makefile, mit den folgenden Targets: build build-arch, build-indep (optional) binary, binary-arch, binary-indep

Innereien debian/rules Setzt den Dreisatz configure; make; make install um, und verpackt das Ergebnis in ein Debian-Paket. Ein ausführbares Makefile, mit den folgenden Targets: build build-arch, build-indep (optional) binary, binary-arch, binary-indep clean

Innereien debian/rules Setzt den Dreisatz configure; make; make install um, und verpackt das Ergebnis in ein Debian-Paket. Ein ausführbares Makefile, mit den folgenden Targets: build build-arch, build-indep (optional) binary, binary-arch, binary-indep clean get-orig-source (optional)

Innereien debian/rules Setzt den Dreisatz configure; make; make install um, und verpackt das Ergebnis in ein Debian-Paket. Ein ausführbares Makefile, mit den folgenden Targets: build build-arch, build-indep (optional) binary, binary-arch, binary-indep clean get-orig-source (optional) patch (optional)

Beispiel Beispiel

Beispiel Beispiel...

Weiterführendes Weiterführendes

Weiterführendes Finetuning Dokumentation (Manpages,... ) (mehrsprachig!).menu und.desktop Dateien zum Eintragen in Menüs von Windowmanagern (für graphische Anwendungen) watch Datei (zum automatisierten Prüfen auf neue Upstream-Versionen) Konfiguration des Pakets mit debconf (nur wenn wirklich nötig) Aufteilen des Pakets -doc Paket -data Paket... Mehrere Varianten? SDL, Gtk+, KDE, ncurses?...

Weiterführendes Mehrere Binärpakete Mehrere Einträge in debian/control.install Dateien $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp und dh install --sourcedir=$(curdir)/debian/tmp --fail-missing

Weiterführendes Bibliotheken Schwierig! Erfordert gutes Wissen über die zu Grunde liegenden Prinzipien (ABIs, APIs, SONAME,... ) Aufteilung in lib* und -dev Pakete, ggf. -dbg Paket shlibs Datei

Weiterführendes Nützliche Helfer mc lintian debdiff pbuilder, cowbuilder piuparts

Weiterführendes Links Debian New Maintainers Guide (auch in Deutsch) http://www.debian.org/doc/manuals/maint-guide/ Als Debian-Paket: maint-guide-de Debian Entwickler-Referenz http://www.debian.org/doc/manuals/ developers-reference/ Als Debian-Paket: developers-reference Debian Policy http://www.debian.org/doc/debian-policy/ Als Debian-Paket: debian-policy

Weiterführendes Fragen? History: 2009/03/12: fpipe Team Schulung Dank an... Alexander Tolimar Reichle-Schmehl <tolimar@debian.org> für seine Folien vom Vortrag Debian-Paket-Bau Eine kurze Einführung, die als Grundlage für meine Folien gedient haben