Debian Pakete selber erstellen

Slides:



Advertisements
Ähnliche Präsentationen
Grenzen Kerzen 2004.
Advertisements

AUTOKURATIERUNG & AUSSENPOLITIK HANS BERNHARD Netznetz.net, Depot, 18. November 2005.
Automated IT Change Planning
DNS-Resolver-Mechanismus
P. Marwedel Informatik 12, U. Dortmund
AUTOKURATIERUNG & AUSSENPOLITIK HANS BERNHARD Netznetz.net, Depot, 18. November 2005.
Windows Vista für Entwickler
Steinbeis Forschungsinstitut für solare und zukunftsfähige thermische Energiesysteme Nobelstr. 15 D Stuttgart WP 4 Developing SEC.
fakultät für informatik informatik 12 technische universität dortmund Optimizations Peter Marwedel TU Dortmund Informatik 12 Germany 2009/01/10 Graphics:
Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,
Peter Marwedel TU Dortmund, Informatik 12
Änderungen bewerten Change_Request.doc Änderungen bewerten Projekt-
Installation des Add-In SOLVERSTAT
Projektübung Klimamodellierung André Paul. Vorbesprechung Projektübung Klimamodellierung ( ) – A. Paul.
Anwendungssoftware für IPv6
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Baustein- vs. Funktionsorientierte Organisation.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Baustein- vs. Funktionsorientierte Organisation.
Thomas Herrmann Software - Ergonomie bei interaktiven Medien Step 6: Ein/ Ausgabe Instrumente (Device-based controls) Trackball. Joystick.
Status OCS Installation GSI DVEE Palaver 10/2/2004 Michael Dahlinger, DVEE, GSI.
Munz – IT/TG - Lörrach. Goals of this intensive lecture To learn: To learn: –What does it means programming in Java ? –What is JAVA good/bad for ? –Which.
Methods Fuzzy- Logic enables the modeling of rule based knowledge by the use of fuzzy criteria instead of exact measurement values or threshold values.
Divide and Conquer Eclipse RCP und Spring in verteilten Anwendungen Stefan Reichert | Lufthansa Systems Benjamin Pasero | IBM Rational.
virtPresenter „lecture recording framework“
USE2ANT Die Umstellung von Use Makefiles zu Ant & Junit Von Isaac, Maleen und Marc.
M A X - P L A N C K - G E S E L L S C H A F T Bericht des Partnerinstituts Sabine Krott 1.0 Pilotentreffen im Harnack-Haus, 8. Juni 2006 Distribution:
Laurie Clarcq The purpose of language, used in communication, is to create a picture in the mind and/or the heart of another.
Machen Sie sich schlau am Beispiel Schizophrenie.
Stellen Sie sich vor: .....kurz vor der Einführung, ein neues Produktes / eine neue Software.....
Institut AIFB, Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Towards Automatic Composition of Processes based on Semantic.
| DC-IAP/SVC3 | © Bosch Rexroth Pneumatics GmbH This document, as well as the data, specifications and other information set forth in.
BAS5SE | Fachhochschule Hagenberg | Daniel Khan | S SPR5 MVC Plugin Development SPR6P.
© All rights reserved. Zend Technologies, Inc. Jan Burkl System Engineer, Zend Technologies Zend Server im Cluster.
| Basel Von der SharePoint Taskliste zum gemanagten Project in Project Server Luca Argentiero Solution Specialist Microsoft
The free XML Editor for Windows COOKTOP Semistrukturierte Daten 1 Vortrag Semistrukturierte Daten 1 COOKTOP The free XML-Editor for Windows
Things I really, really need to remember.. AKKUSATIVDATIV DurchAus FürAußer GegenBei OhneMit UmNach BisSeit Von Zu These prepositions always trigger these.
Your name Bedeutung von Internet- Technologien Gruppe 1 Andreas Feuerstein Philipp Hochratner Christian Weinzinger.
Jan Hentschel Microsoft Expert Student Partner Windows Azure Windows Azure Windows Azure Mobile Services.
Neno Loje Berater & MVP für Visual Studio ALM und TFS (ehemals VSTS) Hochqualitative Produkte mit Visual Studio & TFS 2010.
Frank Fischer + Bernhard Frank Microsoft Deutschland GmbH.
Quelle: Standish Group, 2006 Fourth Quarter Research Report, CHAOS Research Results.
Cooperation unlimited © Zühlke August 2008 Hansjörg Scherer Folie 1 Cooperation unlimited TFS als BackEnd für Visual Studio und Eclipse.
3/28/2017 8:11 PM Visual Studio Tools für Office { Rapid Application Development für Office } Jens Häupel Platform Strategy Manager Microsoft Deutschland.
PresenterCompanyContact Windows Azure ASP.NET Web-Anwendungen schnell und zuverlässig bereitstellen.
2 Software Management SCRUM, Project Management, Quality Management, Business Analysis Innovation and Technology Management, Coaching, R&D Processes Quality.
Department of Computer Science Homepage HTML Preprocessor Perl Database Revision Control System © 1998, Leonhard Jaschke, Institut für Wissenschaftliches.
States in the development of a new service During the development a service will pass through a chain of stages determining the service.
Virtual Earth Visualisierung von Geodaten Daniel Walzenbach, Microsoft Deutschland GmbH
Verben Wiederholung Deutsch III Notizen.
Template v5 October 12, Copyright © Infor. All Rights Reserved.
Ein Projekt des Technischen Jugendfreizeit- und Bildungsvereins (tjfbv) e.V. kommunizieren.de Blended Learning for people with disabilities.
Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT
Design Patterns Ein Muster (pattern) ist eine Idee, die sich in einem praktischen Kontext als nützlich erwiesen hat und dies auch in anderen sein wird.
Hätte gern vs. Möchte gern
External Labels – The rules For all external labels the following rules apply (external labels are all labels which are not inside of a shape) - all labels.
Thomas Claudius Huber Senior Consultant Trivadis AG WCF RIA Services Datengetriebene Apps.
Sentence Structure Subject and verb are always together. Subject and verb are always together. Subject and verb must agree Subject and verb must agree.
KIT – die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH) Vorlesung Knowledge Discovery - Institut AIFB Tempus fugit Towards.
1 Intern | ST-IN/PRM-EU | | © Robert Bosch GmbH Alle Rechte vorbehalten, auch bzgl. jeder Verfügung, Verwertung, Reproduktion, Bearbeitung,
Launch ON Global.vi System ID object name classname Services to suscribe Observer Control Ref vi-path Service name Step 1 : Objects register to the Global.vi´s,
Adjective Endings Nominative & Accusative Cases describing auf deutsch The information contained in this document may not be duplicated or distributed.
EN/FAD Ericsson GmbH EDD/ Information im 21. Jahrundert muss Erwünscht Relevant Erreichbar Schnell Kostenlos!?
Technische Universität München 1 CADUI' June FUNDP Namur G B I The FUSE-System: an Integrated User Interface Design Environment Frank Lonczewski.
ITIXI Version 2.0 Architektur VersionDatumAuthorStatusKommentar Martin JonasseIn ArbeitInitial-Dokument Martin JonasseIn ArbeitFahrgast.
Data Mining Spectral Clustering Junli Zhu SS 2005.
Adjective Declension in German
1 Konica Minolta IT Solutions Prinzip Partnerschaft MANAGED MONITORING ÜBERWACHJUNG DER SERVERINFRASTRUKTUR UND ANWENDUNGEN DIREKT AUS DER CLOUD.
Position Sven Koerber-Abe, 2015 ▪ ▪. in Der PC ist in ___ Box.
Your Logo Presentation Title Presentation Subtitle.
Company Background We Are Creatives We Are Professionals
Azure Mobile Services Deep dive into node.js scripting
 Präsentation transkript:

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

Debian – was ist das? Ein Miteinander von Entwicklern „Society“ mit Infrastruktur für Mitglieder, einem gewählten „Project Leader“, Abstimmungen Weltweite Präsenz Organisierte Treffen (Sprints) bis hin zu Konferenzen Grundstimmung ähnelt der NooK Paketierung von Wissen – Software – Workflows Verteilung an alle Interessierte Integration von Feedback

Debian – was ist das? Technisches Referenz-Archiv mit freier Software Viele Spiegel in aller Welt „.deb“ Format für Pakete „Binary“ „Source“ „apt“ zur Paket-Verwaltung Bug reporting und management System Automatisches Bauen von „Source“ Paketen >10 Architekturen (ARM, MIPS, PowerPC, Intel 32 und 64 bit, …) Linux, FreeBSD und HURD kernel

In den kommenden 20 Minuten Direkt installierbare (.deb) Pakete Erstellen eigener Pakete Hochladen der Pakete zur Distribution

.deb Paket-Format reverse engineered Debian Pakete sind „ar“ Archive $ ar -t boinc-app-examples_7.2.28+dfsg-1exp1_amd64.deb debian-binary control.tar.gz data.tar.xz Informationen zum Paket selbst Abhängigkeiten Maintainer Full-text zur Beschreibung Tar Archiv, wird direkt von root aus entpackt

.deb Paket-Format reverse engineered $ ar -t boinc-app-examples_7.2.28+dfsg-1exp1_amd64.deb debian-binary control.tar.gz data.tar.xz

.deb Paket-Format: data.tar.xz $ tar Jtf data.tar.xz $./ ./usr/ ./usr/share/ ./usr/share/doc/ ./usr/share/doc/boinc-app-examples/ ./usr/share/doc/boinc-app-examples/README.Debian ./usr/share/doc/boinc-app-examples/changelog.Debian.gz ./usr/share/doc/boinc-app-examples/copyright ./usr/lib/ ./usr/lib/boinc-server-maker/ ./usr/lib/boinc-server-maker/apps/ ./usr/lib/boinc-server-maker/apps/upper_case ./usr/lib/boinc-server-maker/apps/sleeper ./usr/lib/boinc-server-maker/apps/worker ./usr/lib/boinc-server-maker/apps/concat ./usr/lib/boinc-server-maker/apps/wrapper ./usr/lib/boinc-server-maker/apps/uc2 ./usr/lib/boinc-server-maker/apps/1sec

.deb Paket-Format: control.tar.gz $ tar zxvf control.tar.gz $ cat md5sums $ cat control ./ ./md5sums ./control $ cat md5sums b16212c9224fdf10491110ca85b642a3 usr/lib/boinc-server-maker/apps/1sec dfdffb385c1aca44c250ef8b9495fc8e usr/lib/boinc-server-maker/apps/concat ecfb42818bb1f18d21af5919d5093458 usr/lib/boinc-server-maker/apps/sleeper 4ac17118707819e29a4fc178661a1ea6 usr/lib/boinc-server-maker/apps/uc2 9d04ba9c7136385fa2a47ccb9fb17eed usr/lib/boinc-server-maker/apps/upper_case …- Package: boinc-app-examples Source: boinc Version: 7.2.28+dfsg-1exp1 Architecture: amd64 Maintainer: Debian BOINC Maintainers <pkg-boinc-devel@lists.alioth.debian.org> Installed-Size: 2095 Depends: libc6 (>= 2.15), libgcc1 (>= 1:4.1.1), libstdc++6 (>= 4.1.1) Recommends: boinc-server-maker Section: net Priority: optional Homepage: http://boinc.berkeley.edu/ Description: example binaries for BOINC servers The Berkeley Open Infrastructure for Network Computing (BOINC) is a software platform for distributed computing using volunteered computer resources. For every scientific problem its own distinct project-server must be provided. The users only run a common client with project-specific additions (if not self-compiled or available as a Linux distribution's package itself) being downloaded from the server. . This package extends the boinc-server-maker package. It features a series of small applications that a newly installed environment may decide to use for testing purposes. Having them separated has the neat side effect that those binaries may be retrieved more easily for foreign platforms to feed the local servers with. The package also features the wrapper application, which is likely to find its audience also in real projects.

Package: boinc-app-examples Source: boinc Version: 7.2.28+dfsg-1exp1 Architecture: amd64 Maintainer: Debian BOINC Maintainers <pkg-boinc-devel@lists.alioth.debian.org> Installed-Size: 2095 Depends: libc6 (>= 2.15), libgcc1 (>= 1:4.1.1), libstdc++6 (>= 4.1.1) Recommends: boinc-server-maker Section: net Priority: optional Homepage: http://boinc.berkeley.edu/ Description: example binaries for BOINC servers The Berkeley Open Infrastructure for Network Computing (BOINC) is a software platform for distributed computing using volunteered computer resources. For every scientific problem its own distinct project-server must be provided. The users only run a common client with project-specific additions (if not self-compiled or available as a Linux distribution's package itself) being downloaded from the server. . This package extends the boinc-server-maker package. It features a series of small applications that a newly installed environment may decide to use for testing purposes. Having them separated has the neat side effect that those binaries may be retrieved more easily for foreign platforms to feed the local servers with. The package also features the wrapper application, which is likely to find its audience also in real projects.

Binäre (installierbare) Pakete Lassen sich von Hand herstellen oder Skripten Aber Sie lassen sich nicht „nachbauen“ und deswegen nicht portieren auf andere Architekturen Die Parameter zur Kompilation des Quellcode sind nicht angegeben, Veränderungen sind schwerer möglich Es findet nicht die Interaktion zwischen Entwicklern und Anwendern statt, die möglich wäre bei Weitergabe des Quellcodes zusammen mit Automatisierbare lesebare Anwendungen zur Erstellung des Pakets

Source Pakete Original „tarball“ „debian“ folder control changelog rules Optionales watch menu manpages …

Untersuchung des „upstream“ Tarballs Nur das von Hand erstellte bleibt Keine vergessene Objekt-Dateien Keine externen .jar Dateien Copyright-Überprüfung anhand Debian Free Software Guidelines (DFSG) Fallen alle Dateien darunter? Sind Weitergabe und Veränderungen gestattet?

Erstellen des debian directory von Hand – machbar dh_make – leichter Prima für alle Programme mit „Makefile“ Kennt auch autoconf, automake Analoge Helfer für Perl und Java es bleibt Separieren von Architektur-abhängigen und Architektur-unabhängigen Programmteilen –Installation nach /usr/share oder /usr/lib Paketier-Schritten – advanced Erklärung von Abhängigkeiten zur Paketerstellung und zur Laufzeit Manpages erstellen Testen der Funktionalität Ausfüllen von Lücken aus dh_make Textuelle Beschreibung der binären Pakete README.Debian, README.source Je nach Programm-Typ Pre- und Post-install Skripte Menü-Integration

debian/rules Jedes Programm, das „binary“ als Argument versteht und die in debian/control beschriebenen Pakete erzeugt Üblicherweise als Makefile implementiert Funktioniert direkt für configure make; make install „override“ targets für Sonderfälle / Ergänzungen

debian/rules – funktioniert erstmal %: dh $@ --parallel

debian/rules – später mehr %: dh $@ --parallel CFGFLAGS = --disable-static-client --disable-static --enable-shared --enable-client \ --disable-server --enable-dependency-tracking --with-gnu-ld $(SETIEXTRAFLAGS) override_dh_auto_configure: aclocal -I m4 && autoheader && automake && autoconf # use two directories for graphics/nographics CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)“ \ -- $(CFGFLAGS) --enable-graphics BOINCDIR=/usr/include/boinc \ dh_auto_configure --builddirectory=graphics -- $(CFGFLAGS) --enable-graphics CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" \ LDFLAGS="$(LDFLAGS)" BOINCDIR=/usr/include/boinc \ dh_auto_configure --builddirectory=nographics -- $(CFGFLAGS) --disable-graphics

Source tree direkt nach Bauen ------ regulärer Quellcode | |--- debian | |---- changelog |---- control |---- rules |---- binary-package-name 1 |---- binary-package-name 2 | . . . . Verzeichnisse in Debian mit Namen der binären Pakete enthalten den schliesslich als data.tar.xz der entsprechenden .deb Pakete präsentiert.

debian/rules – später mehr %: dh $@ --parallel CFGFLAGS = --disable-static-client --disable-static --enable-shared --enable-client \ --disable-server --enable-dependency-tracking --with-gnu-ld $(SETIEXTRAFLAGS) override_dh_auto_configure: aclocal -I m4 && autoheader && automake && autoconf # use two directories for graphics/nographics CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)“ \ -- $(CFGFLAGS) --enable-graphics BOINCDIR=/usr/include/boinc \ dh_auto_configure --builddirectory=graphics -- $(CFGFLAGS) --enable-graphics CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" \ LDFLAGS="$(LDFLAGS)" BOINCDIR=/usr/include/boinc \ dh_auto_configure --builddirectory=nographics -- $(CFGFLAGS) --disable-graphics

debian/rules – später mehr %: dh $@ --parallel CFGFLAGS = --disable-static-client --disable-static --enable-shared --enable-client \ --disable-server --enable-dependency-tracking --with-gnu-ld $(SETIEXTRAFLAGS) override_dh_auto_configure: aclocal -I m4 && autoheader && automake && autoconf # use two directories for graphics/nographics CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)“ \ -- $(CFGFLAGS) --enable-graphics BOINCDIR=/usr/include/boinc \ dh_auto_configure --builddirectory=graphics -- $(CFGFLAGS) --enable-graphics CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" CPPFLAGS="$(CPPFLAGS)" \ LDFLAGS="$(LDFLAGS)" BOINCDIR=/usr/include/boinc \ dh_auto_configure --builddirectory=nographics -- $(CFGFLAGS) --disable-graphics

dpkg-buildpackage ruft debian/rules auf separiert Paketierung von upstream tarball Erstellt .dsc und .changes Dateien als Zusammenfassung aller source und binary Pakete gestattet Signatur durch Paket-Ersteller Garantie der Unveränderlichkeit durch Dritte

Hochladen ftp zu incoming.debian.org/pub/UploadQueue Alle zwei Minuten wird das Verzeichnis nach neuen Paketen untersucht. Signierte Pakete werden akzeptiert, wenn der Unterschreiber auf der Liste steht von Debian Entwicklern oder Akzeptierten Maintainern dieses Pakets Erstmalige Submissions werden manuell gecheckt auf Verletzungen von Copyrights Paketierungs-Fehlern

Zum Mitmachen Debian oder Derivate wie Ubuntu/Mint/… nutzen Tägliche Routine mit verfügbaren Paketen abgleichen Paketierungs-Techniken nutzen auch bei eigenen Entwicklungen Austausch von Programm-Versionen Sauberes Entfernen Maintenance von Paketen nur von solchen, die Ihr selber oft nutzt Uploads kosten keine Zeit Paket-Updates auch nicht wirklich Testen schon

Weg zum eigenen Upload Paket erstellen und um Upload durch Entwickler bitten (mentors.debian.net) GPG Schlüssel erstellen Durch zwei Debian Entwickler signieren lassen (Schleswig-Holstein hat vier) Antrag auf Akzeptanz als Paket-Maintainer stellen - dauert 2-4 Wochen

Weg in die Community Blends – gemeinsame Paketbetreuung Patches an upstream GPG Key sigining im Urlaub / auf Dienstreisen stets sehr freundlich, Debian slang „beer signing“ Diskussionsforen / Mailing lists

Patches Veränderungen sollte es nicht geben, gibt es aber Fehlermeldungen des Compilers Skripte sind ausführbar, die nur als Bibliothek dienen Erleichterung der Installation für Debian …. Veränderungen sind als Patch zu verwalten Damit updates leichter fallen Entwickler werden auf die Veränderung hingewiesen Werkzeuge wie „quilt“ unterstützen den Prozess