Kompilieren? Ich? Bin ich Gentoo?

Ähnliche Dokumente
Linux Mint Die Neuerungen

Definitionen/Vorarbeit zum Thema Java

Merkblatt System-C Installation Linux

Programmierung unter GNU/Linux für Einsteiger

Linux Prinzipien und Programmierung

Linux Mint 19 - Die Neuerungen

Portable Anwendungen mit GNU/Linux

Programmiersprache. Emily & rica

Videodownload. Edgar Fast Edi Hoffmann. 7. Juni Community FreieSoftwareOG

Faktura mit Freier Software

Institut für Computational Science Prof. Dr. H. Hinterberger. Praxismodul 1. Einführung in die Programmierung Erste Programme

Continuous Integration mit TravisCI u.a. Jan Steemann

Informationen zur Verwendung von Visual Studio und cmake

Hello World! Eine Einführung in das Programmieren Das erste Programm

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

LinuxCounter.org - Jeder User zählt...

Workshop. Nachhaltigkeit in der Entwicklung. Stefan Suchi. 1. Stud.IP Tagung September 2003

1.3.1 Java-Compiler installieren

Diplomarbeit LEGO Mindstorms Simulator - JORGE Installationshandbuch.

Desktop-Wikis am Beispiel von TiddlyWiki

Debitel Web'n'Walk Stick XS W14 (4G Systems)

Programme erstellen in Java

Programmieren was ist das genau?

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

1.102 Installation von Linux und Paketmanagement. Auf dem Weg: Certified Linux Professional

FreieSoftwareOG. Die wichtigen Events* * FSOG/LugOG betrefend

FreieSoftwareOG. Die wichtigen Events* * FSOG/LugOG betreffend

RAM-Disks. Edgar Fast Edi Hoffmann. 3. Mai Community FreieSoftwareOG

Screenshots mit Linux

Einführung in die Programmierung des VEX IQ mit ROBOTC. Kurzanleitung

Virtualisierung unter GNU/Linux für Einsteiger

Free your Android! Edgar Fast Edi Hoffmann. 8. November Community FreieSoftwareOG

Arduino für FunkAmateure

Eprog Starthilfe. 5. Oktober Einleitung 2

Programmiersprachen und Übersetzer

Datentresore mit GNU/Linux

Software-Installation unter Linux

Die Überwachung lokaler Server Parameter durch den Local Check erfordert die Installation eines Monitoring Agents auf dem überwachten Server.

Artem Eger. Build-Systeme in java Maven & ANT

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

Installation von Zope, Plone, exam auf OSS

Kapitel 1: Die ersten Schritte 1

Objektorientiertes Programmieren mit Suse Linux

Vorsemesterkurs Informatik

Erstellung der Scheduling-Testumgebung mit integrierter LogTrace-Bibliothek

Einführung zu den Übungen aus Softwareentwicklung 1

1. Das BV-Plugin-Framework

Informationen zur Verwendung von Visual Studio und cmake

Dockerbank Container-basiertes Deployment von biomedizinischen IT-Lösungen

Perforce Installation mit SSL

Installationsanleitung - Command WorkStation 5.6 mit Fiery Extended Applications 4.2

4D Server v12 64-bit Version BETA VERSION

Dies ist der zweite Artikel einer Serie über Electron.

Debian Wheezy, DBmail 3, PostgreSQL und Postfix 4. Februar 2014 Einführung DBmail ist ein Mailspeicher, der komplett auf Datenbanken basiert.

Mapra: C++ Teil 3. Felix Gruber. 29. April IGPM, RWTH Aachen. Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 3 29.

FreieSoftwareOG. Die wichtigen Events* * FSOG/LugOG betreffend

Build Management Tool?

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Build Management Tool

IBM SPSS Statistics Version 24. Installationsanweisungen für Linux (Lizenz für gleichzeitig angemeldete Benutzer) IBM

Einrichtung OpenVPN mit Hilfe des Network Managers

Informatik für den Satellitenbau. Toolchains und Crosscompiler

FreieSoftwareOG. Die wichtigen Events* * FSOG/LugOG betrefend

Definition Compiler. Bekannte Compiler

Kurzanleitung zu XML2DB

Die Gentoo-Paketverwaltung

LINUX-WORKSHOP. WINTEROPHASE 17/18 Heiko Carrasco

Einführung in die Programmierung 1

Installation SAP-GUI 7.50 für Windows

Projekte mit Qt und Dev-C++(MinGW) kompilieren

ANT. Kurzvortrag von Manuel Schulze.

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

Kapitel 1: Die ersten Schritte Thema: Programmieren Seite: 1

C ++ in der Computerlinguistik

Tools, Werkzeuge und Eye-Candy unter GNU/Linux (Teil 2)

Embedded Linux Automatisierung für die Zukunft

AVR-Programmierung unter Mac OSX

Eine kleine Makefile Einführung

KAPITEL 3. Apache installieren. 3.1 Vorüberlegungen Binary oder übersetzen?

Einführung zu den Übungen aus Softwareentwicklung 1

Windows Updates verursachen Probleme auf Windows 10 Long Term Servicing Branch (LTSB) Einleitung... 2

Kapitel 02. Java was, wann, warum, wieso. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

B) Klassenbibliotheken Turtle und Util (GPanel, Console) installieren Ein Unterverzeichnis classes auf der Festplatte erstellen, z.b.

21 Ein eigenes. Diskussionsforum. Bauen Sie auf Ihrer Website eine Community auf. Warum ein Diskussionsforum anbieten?

Ausgewählte Anwendungen

Build Management Tool?

2D22 Prinzipien der Softwareentwicklung. Prinzipien der Softwareentwicklung S. Strahringer 1

Tools, Werkzeuge und Eye-Candy unter Linux (Teil 1)

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 1

Anwender Dokumentation. Update Elster 02/2015 ab. WFinac Version 2.41 Build 100

SLT Schwabacher Linuxtage 2009 Herzlich willkommen. Peter Botschafter / sudo

Installation von ProMoT/DIANA

Dokumentenmanagement mit GNU/Linux

Einführung in die Informatik

Praktische Informatik 1

Installationsanleitung

Möge das Abenteuer beginnen!

Einführung in Perl 6. Referent : Gerd Pokorra Am Eicher Hang Freudenberg. (dienstlich): /

Anwender Dokumentation. Update Elster 2015 für. WFinac Version 2.41 Build 100

Transkript:

Kompilieren? Ich? Bin ich Gentoo? Edgar Fast Edi Hoffmann Community FreieSoftwareOG kontakt@freiesoftwareog.org 1. Juni 2016

Compilieren? Compiler? Begriffserklärung 2 / 38

Compilieren? Compiler? Begriffserklärung Ein Compiler (auch Kompiler; von englisch für zusammentragen bzw. lateinisch compilare aufhäufen ) ist ein Computerprogramm, das Quellcode einer bestimmten Programmiersprache in eine Form übersetzt, die von einem Computer (direkter) ausgeführt werden kann. 2 / 38

Compilieren? Compiler? Begriffserklärung Ein Compiler (auch Kompiler; von englisch für zusammentragen bzw. lateinisch compilare aufhäufen ) ist ein Computerprogramm, das Quellcode einer bestimmten Programmiersprache in eine Form übersetzt, die von einem Computer (direkter) ausgeführt werden kann. Der Vorgang der Übersetzung wird auch als Kompilierung oder Umwandlung (bzw. mit dem entsprechenden Verb) bezeichnet. 2 / 38

Compilieren? Compiler? Begriffserklärung Ein Compiler (auch Kompiler; von englisch für zusammentragen bzw. lateinisch compilare aufhäufen ) ist ein Computerprogramm, das Quellcode einer bestimmten Programmiersprache in eine Form übersetzt, die von einem Computer (direkter) ausgeführt werden kann. Der Vorgang der Übersetzung wird auch als Kompilierung oder Umwandlung (bzw. mit dem entsprechenden Verb) bezeichnet. Das Gegenteil, also die Rückübersetzung von Maschinensprache in Quelltext einer bestimmten Programmiersprache, wird Dekompilierung und entsprechende Programme Decompiler genannt... 2 / 38

Compilieren? Compiler? Begriffserklärung 3 / 38

Compilieren? Compiler? Begriffserklärung Der erste Compiler (A-0) wurde 1949 von der Mathematikerin Grace Hopper entwickelt. 3 / 38

Compilieren? Compiler? Begriffserklärung Der erste Compiler (A-0) wurde 1949 von der Mathematikerin Grace Hopper entwickelt. 3 / 38

Compilieren? Compiler? Begriffserklärung 4 / 38

Compilieren? Compiler? Begriffserklärung Bis zu diesem Zeitpunkt mussten Programmierer direkt Maschinencode erstellen. 4 / 38

Compilieren? Compiler? Begriffserklärung Bis zu diesem Zeitpunkt mussten Programmierer direkt Maschinencode erstellen. Um diesen Prozess zu vereinfachen, entwickelte Grace Hopper eine Methode, die es ermöglichte, Programme und ihre Unterprogramme in einer mehr an der menschlichen als der maschinellen Sprache orientierten Weise auszudrücken. 4 / 38

Compilieren? Compiler? Begriffserklärung Bis zu diesem Zeitpunkt mussten Programmierer direkt Maschinencode erstellen. Um diesen Prozess zu vereinfachen, entwickelte Grace Hopper eine Methode, die es ermöglichte, Programme und ihre Unterprogramme in einer mehr an der menschlichen als der maschinellen Sprache orientierten Weise auszudrücken. Am 3. Mai 1952 stellte Hopper den ersten Compiler A-0 vor, der Algorithmen aus einem Katalog abrief, Code umschrieb, in passender Reihenfolge zusammenstellte, Speicherplatz reservierte und die Zuteilung von Speicheradressen organisierte. 4 / 38

Compilieren? Compiler? Begriffserklärung Bis zu diesem Zeitpunkt mussten Programmierer direkt Maschinencode erstellen. Um diesen Prozess zu vereinfachen, entwickelte Grace Hopper eine Methode, die es ermöglichte, Programme und ihre Unterprogramme in einer mehr an der menschlichen als der maschinellen Sprache orientierten Weise auszudrücken. Am 3. Mai 1952 stellte Hopper den ersten Compiler A-0 vor, der Algorithmen aus einem Katalog abrief, Code umschrieb, in passender Reihenfolge zusammenstellte, Speicherplatz reservierte und die Zuteilung von Speicheradressen organisierte. Hopper nannte ihren Vortrag zum ersten Compiler The Education of a Computer. 4 / 38

Selbst was kompilieren? Wieso eigentlich? 5 / 38

Selbst was kompilieren? Wieso eigentlich? Gerade für Einsteiger oder normale Anwender stellt sich natürlich die Frage: Wieso zum Teufel sollte ich das wollen? 5 / 38

Selbst was kompilieren? Wieso eigentlich? Gerade für Einsteiger oder normale Anwender stellt sich natürlich die Frage: Wieso zum Teufel sollte ich das wollen? Viele Distributionen sind keine Rolling Releases und bieten daher nur 1-2 mal im Jahr Updates 5 / 38

Selbst was kompilieren? Wieso eigentlich? Gerade für Einsteiger oder normale Anwender stellt sich natürlich die Frage: Wieso zum Teufel sollte ich das wollen? Viele Distributionen sind keine Rolling Releases und bieten daher nur 1-2 mal im Jahr Updates Neue, coole oder benötigte Funktionen stehen nur in der neuesten Version des Lieblingsprogrammes zur Verfügung 5 / 38

Selbst was kompilieren? Wieso eigentlich? Gerade für Einsteiger oder normale Anwender stellt sich natürlich die Frage: Wieso zum Teufel sollte ich das wollen? Viele Distributionen sind keine Rolling Releases und bieten daher nur 1-2 mal im Jahr Updates Neue, coole oder benötigte Funktionen stehen nur in der neuesten Version des Lieblingsprogrammes zur Verfügung Es können Patches und Verbesserungen aus Drittquellen verwendet werden 5 / 38

Selbst was kompilieren? Wieso eigentlich? Gerade für Einsteiger oder normale Anwender stellt sich natürlich die Frage: Wieso zum Teufel sollte ich das wollen? Viele Distributionen sind keine Rolling Releases und bieten daher nur 1-2 mal im Jahr Updates Neue, coole oder benötigte Funktionen stehen nur in der neuesten Version des Lieblingsprogrammes zur Verfügung Es können Patches und Verbesserungen aus Drittquellen verwendet werden (Man kann sich sicher sein, daß das Programm tatsächlich das tut, wofür man es kompiliert hat) 5 / 38

Das geeignete Beispiel Alpine, ein textbasierter Mailclient 6 / 38

Das geeignete Beispiel Alpine, ein textbasierter Mailclient Mit Alpine, einem textbasierten Mailprogramm lässt sich das Prinzip des Kompilierens aus den Quellen sehr gut veranschaulichen. 6 / 38

Das geeignete Beispiel Alpine, ein textbasierter Mailclient Mit Alpine, einem textbasierten Mailprogramm lässt sich das Prinzip des Kompilierens aus den Quellen sehr gut veranschaulichen. Es handelt sich dabei um eine Fortführung des Mailclients Pine. 6 / 38

Vorarbeiten Kein Kompilieren ohne Grundlagen 7 / 38

Vorarbeiten Kein Kompilieren ohne Grundlagen Um mit einem GNU/Linux System ein Programm aus den Quellen zu kompilieren, werden grundlegende Pakete benötigt. 7 / 38

Vorarbeiten Kein Kompilieren ohne Grundlagen Um mit einem GNU/Linux System ein Programm aus den Quellen zu kompilieren, werden grundlegende Pakete benötigt. Diese Grundausstattung sind die build-essentials, welche vorher installiert werden müssen. 7 / 38

Vorarbeiten Kein Kompilieren ohne Grundlagen Um mit einem GNU/Linux System ein Programm aus den Quellen zu kompilieren, werden grundlegende Pakete benötigt. Diese Grundausstattung sind die build-essentials, welche vorher installiert werden müssen. Dazu kommen noch die jeweiligen Abhängigkeiten des zu kompilierenden Programms. 7 / 38

Sourcecode besorgen Direkt vom Erzeuger 8 / 38

Sourcecode besorgen Direkt vom Erzeuger 8 / 38

Sourcecode besorgen Direkt vom Erzeuger 9 / 38

Sourcecode besorgen Direkt vom Erzeuger 9 / 38

Sourcecode besorgen Zusatz-Download 10 / 38

Sourcecode besorgen Zusatz-Download Um auch das Patchen kurz anzureissen, bietet sich der Download eines weiteren Päckchens an... 10 / 38

Sourcecode besorgen Zusatz-Download 11 / 38

Sourcecode besorgen Zusatz-Download 11 / 38

Sourcecode besorgen Überblick verschaffen 12 / 38

Sourcecode besorgen Überblick verschaffen 12 / 38

Sourcecode besorgen Auspacken und Sichten 13 / 38

Sourcecode besorgen Auspacken und Sichten 13 / 38

Sourcecode besorgen Auspacken und Sichten 14 / 38

Sourcecode besorgen Auspacken und Sichten 14 / 38

Sourcecode besorgen Auspacken und Sichten 15 / 38

Sourcecode besorgen Auspacken und Sichten Das Alpine-Verzeichnis sieht nun fgolgendermassen aus: 15 / 38

Sourcecode besorgen Den Patch untersuchen 16 / 38

Sourcecode besorgen Den Patch untersuchen Zunächst schauen wir uns mal an, welche Geheimnisse sich hinter dem vorhin heruntergeladenen Patch verstecken... 16 / 38

Sourcecode besorgen Den Patch untersuchen 17 / 38

Sourcecode besorgen Den Patch untersuchen 17 / 38

Jetzt wird s ernst... Den Patch trocken anwenden 18 / 38

Jetzt wird s ernst... Den Patch trocken anwenden 18 / 38

Jetzt wird s ernst... Den Patch anwenden 19 / 38

Jetzt wird s ernst... Den Patch anwenden 19 / 38

Jetzt wird s ernst... Generalprobe mit configure 20 / 38

Jetzt wird s ernst... Generalprobe mit configure 20 / 38

Jetzt wird s ernst... Generalprobe mit configure 21 / 38

Jetzt wird s ernst... Generalprobe mit configure 21 / 38

Jetzt wird s ernst... Configure mit optionalem Parameter 22 / 38

Jetzt wird s ernst... Configure mit optionalem Parameter Ein Beispielaufruf mit optionalem Parameter: 22 / 38

Jetzt wird s ernst... Configure mit optionalem Parameter Ein Beispielaufruf mit optionalem Parameter:./configure with-interactive-spellcheck=programmxy 22 / 38

Jetzt wird s ernst... configure aufrufen 23 / 38

Jetzt wird s ernst... configure aufrufen 23 / 38

Jetzt wird s ernst... Waaahh! configure wirft Fehler 24 / 38

Jetzt wird s ernst... Waaahh! configure wirft Fehler 24 / 38

Jetzt wird s ernst... Dem configure -Fehler nachspüren 25 / 38

Jetzt wird s ernst... Dem configure -Fehler nachspüren 25 / 38

Jetzt wird s ernst... Den configure -Fehler ausmerzen 26 / 38

Jetzt wird s ernst... Den configure -Fehler ausmerzen 26 / 38

Jetzt wird s ernst... Weitere configure -Fehler beseitigen 27 / 38

Jetzt wird s ernst... Weitere configure -Fehler beseitigen 27 / 38

Jetzt wird s ernst... Weitere configure -Fehler beseitigen 28 / 38

Jetzt wird s ernst... Weitere configure -Fehler beseitigen 28 / 38

Jetzt wird s ernst... Yeah!! configure läuft durch 29 / 38

Jetzt wird s ernst... Yeah!! configure läuft durch 29 / 38

Jetzt wird s ernst... Mit make den Endspurt einleiten 30 / 38

Jetzt wird s ernst... Mit make den Endspurt einleiten 30 / 38

Jetzt wird s ernst... Mit make den Endspurt einleiten 31 / 38

Jetzt wird s ernst... Mit make den Endspurt einleiten 31 / 38

Früchte der Arbeit ernten... Aufruf des selbst komplierten Programms Alpine 32 / 38

Früchte der Arbeit ernten... Aufruf des selbst komplierten Programms Alpine 32 / 38

Früchte der Arbeit ernten... Aufruf des selbst komplierten Programms Alpine 33 / 38

Früchte der Arbeit ernten... Aufruf des selbst komplierten Programms Alpine 33 / 38

Zusatz-Info Programm deinstallieren 34 / 38

Zusatz-Info Programm deinstallieren Um das selbst kompilierte Programm wieder zu entfernen, muss man als root den Befehl make uninstall an der selben Stelle wie vorher make install verwenden. 34 / 38

Zusatz-Info Alternative CMake 35 / 38

Zusatz-Info Alternative CMake Viele Programme nutzen noch die GNU Autotools (./configure, make und make install) In letzter Zeit jedoch wird eine Alternative immer populärer: CMake Ein Beispielaufruf würde folgendermassen aussehen: mkdir build cd build cmake.. && make 35 / 38

Hands-On Mit Alpine 36 / 38

Hands-On Mit Alpine D E M O 36 / 38

Links zur Präsentation https://de.wikipedia.org/wiki/kompilieren http://patches.freeiz.com/alpine/ http://www.linuxvoice.com/ 37 / 38

Weitere Informationen bekommen Sie hier: http://www.freiesoftwareog.org und Kontakt@FreieSoftwareOG.org oder kommen Sie doch einfach zu unserem regelmäßigen Treffen, jeden 1. Mittwoch im Monat ab 20:00 Uhr. (Treffpunkt und Thema laut Webseite) 38 / 38