Kompilierung: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
 
Zeile 35: Zeile 35:
[[Image:Grafik7.png|right|top|alt="Bild:Tar-archive.png"]]
[[Image:Grafik7.png|right|top|alt="Bild:Tar-archive.png"]]


Bevor Linux auf der Bildfläche erschien, wurden Programm-Pakete in Source-Form zur Verfügung gestellt, die in komprimierte Tar-Archive (auch als Tar-Ball bezeichnet) verpackt wurden. Während früher haupt­sächlich das Unix-eigene compress zum Komprimieren verwendet wurde, ist es inzwischen weitgehend von gzip verdrängt worden, das einen besseren Komprimierungs-Faktor erzielt. Vereinzelt wird auch bzip2 ein­gesetzt, da es noch besser ist, hier wurde zum Vergleich die Tar-Datei von tkcvs 6.4 herangezogen)
Bevor Linux auf der Bildfläche erschien, wurden Programm-Pakete in Source-Form zur Verfügung gestellt, die in komprimierte Tar-Archive (auch als Tar-Ball bezeichnet) verpackt wurden
* Während früher haupt­sächlich das Unix-eigene compress zum Komprimieren verwendet wurde, ist es inzwischen weitgehend von gzip verdrängt worden, das einen besseren Komprimierungs-Faktor erzielt
* Vereinzelt wird auch bzip2 ein­gesetzt, da es noch besser ist, hier wurde zum Vergleich die Tar-Datei von tkcvs 6.4 herangezogen)


Typische Komprimierung von compress, gzip und bzip2
Typische Komprimierung von compress, gzip und bzip2
Zeile 47: Zeile 49:
|| .tar
|| .tar
|| (ohne)
|| (ohne)
|| tar xvf ...
|| tar xvf ..
|-
|-
|| .tar.Z
|| .tar.Z
|| compress
|| compress
|| tar Zxvf ...
|| tar Zxvf ..
|-
|-
|| .tar.gz
|| .tar.gz
|| gzip
|| gzip
|| tar zxvf ...
|| tar zxvf ..
|-
|-
|| .tgz
|| .tgz
|| gzip
|| gzip
|| tar zxvf ...
|| tar zxvf ..
|-
|-
|| .tar.bz2
|| .tar.bz2
|| bzip2
|| bzip2
|| tar jxvf ...
|| tar jxvf ..
|}
|}


Das GNU-tar-Kommando, das üblicherweise bei allen Linux-Distributionen verwendet wird, kann mit kom­primierten Tar-Archiven umgehen (s. Tabelle). Andere Unix-Systeme (z. B.  SunOS) verwenden eine andere Tar-Implementierung. Hier muss man zuerst das Archiv dekomprimieren (mit uncompress, gunzip oder bunzip2), ehe man die Tar-Datei auspacken kann.
Das GNU-tar-Kommando, das üblicherweise bei allen Linux-Distributionen verwendet wird, kann mit kom­primierten Tar-Archiven umgeh== Beschreibung ==
[[Image:Grafik7.png|right|top|alt="Bild:Tar-archive.png"]]


Vereinzelt findet man auch im Linux-Bereich Zip-Archive vor, erkennbar an der Endung .zip. Diese werden mit unzip ausgepackt.
Bevor Linux auf der Bildfläche erschien, wurden Programm-Pakete in Source-Form zur Verfügung gestellt, die in komprimierte Tar-Archive (auch als Tar-Ball bezeichnet) verpackt wurden
* Während früher haupt­sächlich das Unix-eigene compress zum Komprimieren verwendet wurde, ist es inzwischen weitgehend von gzip verdrängt worden, das einen besseren Komprimierungs-Faktor erzielt
* Vereinzelt wird auch bzip2 ein­gesetzt, da es noch besser ist, hier wurde zum Vergleich die Tar-Datei von tkcvs 6.4 herangezogen)


Nachdem das Tar-Archiv erfolgreich ausgepackt ist, sollte man nach einer Datei README oder INSTALL Ausschau halten. Dort steht beschrieben, wie das Paket übersetzt und installiert wird. Unabhängig von der Plattform und Distribution sind es meist folgende Schritte, die ausgeführt werden:
Typische Komprimierung von compress, gzip und bzip2
 
{|| class="wikitable sortable"
|-
|| '''Endung'''
|| '''komprimiert mit'''
|| '''auspacken mit '''
|-
|| .tar
|| (ohne)
|| tar xvf ..
|-
|| .tar.Z
|| compress
|| tar Zxvf ..
|-
|| .tar.gz
|| gzip
|| tar zxvf ..
|-
|| .tgz
|| gzip
|| tar zxvf ..
|-
|| .tar.bz2
|| bzip2
|| tar jxvf ..
|}
 
Das GNU-tar-Kommando, das üblicherweise bei allen Linux-Distributionen verwendet wird, kann mit kom­primierten Tar-Archiven umgehen (s. Tabelle)
* Andere Unix-Systeme (z. B.  SunOS) verwenden eine andere Tar-Implementierung
* Hier muss man zuerst das Archiv dekomprimieren (mit uncompress, gunzip oder bunzip2), ehe man die Tar-Datei auspacken kann
 
Vereinzelt findet man auch im Linux-Bereich Zip-Archive vor, erkennbar an der Endung .zip
* Diese werden mit unzip ausgepackt
 
Nachdem das Tar-Archiv erfolgreich ausgepackt ist, sollte man nach einer Datei README oder INSTALL Ausschau halten
* Dort steht beschrieben, wie das Paket übersetzt und installiert wird
* Unabhängig von der Plattform und Distribution sind es meist folgende Schritte, die ausgeführt werden:
 
<div >./configure oder make config</div>
 
Im ersten Schritt wird untersucht, um was für ein System (Linux, Unix, ...) es sich handelt, welche Biblio­theken vorhanden sind und ob die zur Kompilierung benötigten Tools wie C-Compiler (gcc) oder Linker (ld) installiert sind, um daraus ein Makefile zu generieren
 
<div >make</div>
 
Mithilfe des Makefiles, das im ersten Schritt erzeugt wurde, wird das Paket übersetzt
 
<div >make test (optional)</div>
 
Mit diesem Schritt wird überprüft, ob die Kompilation erfolgreich war
 
<div >make install</div>
 
Damit wird das Paket installiert
 
Hilfreich bei der Übersetzung ist die Option -n des make-Kommandos
* Damit kann man make erst einmal trocken ausführen, um zu sehen, welche Kommandos alle ausgeführt werden und in welches Verzeichnis welche Dateien kopiert werden, um nötigenfalls das Makefile noch anpassen zu können
 
Auch wenn dieses Verfahren meist problemlos funktioniert, hat die Sache einen Haken: an die Deinstallati­on hat der Autor meistens nicht gedacht, d.&nbsp;h.&nbsp;ein make uninstall wird in den wenigsten Fällen klappen
* Und so bleiben die installierten Dateien bis in alle Ewigkeit im System, es sei denn, man hat sich bei der Installation gemerkt, welche Dateien wohin kopiert wurden und löscht sie manuell
 
Weitere Nachteile der manuellen Installation: Auf dem Zielsystem müssen alle Werkzeuge (Compiler, Lin­ker, Make etc.), Bibliotheken und Headerdateien zum Kompilieren des Programmes vorhanden sein
* Bei der Installation einer neueren Version eines Programmes (Update) werden evtl.&nbsp;die bereits vorhandenen, an das System angepassten Konfigurationsdateien der alten Version überschrieben
 
[[Kategorie:Kompilierung]]
en (s.&nbsp;Tabelle)
* Andere Unix-Systeme (z.&nbsp;B.&nbsp; SunOS) verwenden eine andere Tar-Implementierung
* Hier muss man zuerst das Archiv dekomprimieren (mit uncompress, gunzip oder bunzip2), ehe man die Tar-Datei auspacken kann
 
Vereinzelt findet man auch im Linux-Bereich Zip-Archive vor, erkennbar an der Endung .zip
* Diese werden mit unzip ausgepackt
 
Nachdem das Tar-Archiv erfolgreich ausgepackt ist, sollte man nach einer Datei README oder INSTALL Ausschau halten
* Dort steht beschrieben, wie das Paket übersetzt und installiert wird
* Unabhängig von der Plattform und Distribution sind es meist folgende Schritte, die ausgeführt werden:


  <div >./configure oder make config</div>
  <div >./configure oder make config</div>


Im ersten Schritt wird untersucht, um was für ein System (Linux, Unix, ...) es sich handelt, welche Biblio­theken vorhanden sind und ob die zur Kompilierung benötigten Tools wie C-Compiler (gcc) oder Linker (ld) installiert sind, um daraus ein Makefile zu generieren.
Im ersten Schritt wird untersucht, um was für ein System (Linux, Unix, ...) es sich handelt, welche Biblio­theken vorhanden sind und ob die zur Kompilierung benötigten Tools wie C-Compiler (gcc) oder Linker (ld) installiert sind, um daraus ein Makefile zu generieren


  <div >make</div>
  <div >make</div>


Mithilfe des Makefiles, das im ersten Schritt erzeugt wurde, wird das Paket übersetzt.
Mithilfe des Makefiles, das im ersten Schritt erzeugt wurde, wird das Paket übersetzt


  <div >make test (optional)</div>
  <div >make test (optional)</div>


Mit diesem Schritt wird überprüft, ob die Kompilation erfolgreich war.
Mit diesem Schritt wird überprüft, ob die Kompilation erfolgreich war


  <div >make install</div>
  <div >make install</div>


Damit wird das Paket installiert.
Damit wird das Paket installiert


Hilfreich bei der Übersetzung ist die Option -n des make-Kommandos. Damit kann man make erst einmal trocken ausführen, um zu sehen, welche Kommandos alle ausgeführt werden und in welches Verzeichnis welche Dateien kopiert werden, um nötigenfalls das Makefile noch anpassen zu können.
Hilfreich bei der Übersetzung ist die Option -n des make-Kommandos
* Damit kann man make erst einmal trocken ausführen, um zu sehen, welche Kommandos alle ausgeführt werden und in welches Verzeichnis welche Dateien kopiert werden, um nötigenfalls das Makefile noch anpassen zu können


Auch wenn dieses Verfahren meist problemlos funktioniert, hat die Sache einen Haken: an die Deinstallati­on hat der Autor meistens nicht gedacht, d. h. ein make uninstall wird in den wenigsten Fällen klappen. Und so bleiben die installierten Dateien bis in alle Ewigkeit im System, es sei denn, man hat sich bei der Installation gemerkt, welche Dateien wohin kopiert wurden und löscht sie manuell.
Auch wenn dieses Verfahren meist problemlos funktioniert, hat die Sache einen Haken: an die Deinstallati­on hat der Autor meistens nicht gedacht, d.&nbsp;h.&nbsp;ein make uninstall wird in den wenigsten Fällen klappen
* Und so bleiben die installierten Dateien bis in alle Ewigkeit im System, es sei denn, man hat sich bei der Installation gemerkt, welche Dateien wohin kopiert wurden und löscht sie manuell


Weitere Nachteile der manuellen Installation: Auf dem Zielsystem müssen alle Werkzeuge (Compiler, Lin­ker, Make etc.), Bibliotheken und Headerdateien zum Kompilieren des Programmes vorhanden sein. Bei der Installation einer neueren Version eines Programmes (Update) werden evtl. die bereits vorhandenen, an das System angepassten Konfigurationsdateien der alten Version überschrieben.
Weitere Nachteile der manuellen Installation: Auf dem Zielsystem müssen alle Werkzeuge (Compiler, Lin­ker, Make etc.), Bibliotheken und Headerdateien zum Kompilieren des Programmes vorhanden sein
* Bei der Installation einer neueren Version eines Programmes (Update) werden evtl.&nbsp;die bereits vorhandenen, an das System angepassten Konfigurationsdateien der alten Version überschrieben


[[Kategorie:Kompilierung]]
[[Kategorie:Kompilierung]]

Aktuelle Version vom 21. November 2024, 10:21 Uhr

Kompilierung von Quellarchiven

Beschreibung

Installation

Aufruf

Optionen

Parameter

Umgebungsvariablen

Exit-Status

Anwendung

Problembehebung

Konfiguration

Dateien

Anhang

Siehe auch

Dokumentation

Man-Page
Info-Pages

Links

Projekt
Weblinks

TMP

Beschreibung

"Bild:Tar-archive.png"

Bevor Linux auf der Bildfläche erschien, wurden Programm-Pakete in Source-Form zur Verfügung gestellt, die in komprimierte Tar-Archive (auch als Tar-Ball bezeichnet) verpackt wurden

  • Während früher haupt­sächlich das Unix-eigene compress zum Komprimieren verwendet wurde, ist es inzwischen weitgehend von gzip verdrängt worden, das einen besseren Komprimierungs-Faktor erzielt
  • Vereinzelt wird auch bzip2 ein­gesetzt, da es noch besser ist, hier wurde zum Vergleich die Tar-Datei von tkcvs 6.4 herangezogen)

Typische Komprimierung von compress, gzip und bzip2

Endung komprimiert mit auspacken mit
.tar (ohne) tar xvf ..
.tar.Z compress tar Zxvf ..
.tar.gz gzip tar zxvf ..
.tgz gzip tar zxvf ..
.tar.bz2 bzip2 tar jxvf ..

Das GNU-tar-Kommando, das üblicherweise bei allen Linux-Distributionen verwendet wird, kann mit kom­primierten Tar-Archiven umgeh== Beschreibung ==

"Bild:Tar-archive.png"

Bevor Linux auf der Bildfläche erschien, wurden Programm-Pakete in Source-Form zur Verfügung gestellt, die in komprimierte Tar-Archive (auch als Tar-Ball bezeichnet) verpackt wurden

  • Während früher haupt­sächlich das Unix-eigene compress zum Komprimieren verwendet wurde, ist es inzwischen weitgehend von gzip verdrängt worden, das einen besseren Komprimierungs-Faktor erzielt
  • Vereinzelt wird auch bzip2 ein­gesetzt, da es noch besser ist, hier wurde zum Vergleich die Tar-Datei von tkcvs 6.4 herangezogen)

Typische Komprimierung von compress, gzip und bzip2

Endung komprimiert mit auspacken mit
.tar (ohne) tar xvf ..
.tar.Z compress tar Zxvf ..
.tar.gz gzip tar zxvf ..
.tgz gzip tar zxvf ..
.tar.bz2 bzip2 tar jxvf ..

Das GNU-tar-Kommando, das üblicherweise bei allen Linux-Distributionen verwendet wird, kann mit kom­primierten Tar-Archiven umgehen (s. Tabelle)

  • Andere Unix-Systeme (z. B.  SunOS) verwenden eine andere Tar-Implementierung
  • Hier muss man zuerst das Archiv dekomprimieren (mit uncompress, gunzip oder bunzip2), ehe man die Tar-Datei auspacken kann

Vereinzelt findet man auch im Linux-Bereich Zip-Archive vor, erkennbar an der Endung .zip

  • Diese werden mit unzip ausgepackt

Nachdem das Tar-Archiv erfolgreich ausgepackt ist, sollte man nach einer Datei README oder INSTALL Ausschau halten

  • Dort steht beschrieben, wie das Paket übersetzt und installiert wird
  • Unabhängig von der Plattform und Distribution sind es meist folgende Schritte, die ausgeführt werden:
./configure oder make config

Im ersten Schritt wird untersucht, um was für ein System (Linux, Unix, ...) es sich handelt, welche Biblio­theken vorhanden sind und ob die zur Kompilierung benötigten Tools wie C-Compiler (gcc) oder Linker (ld) installiert sind, um daraus ein Makefile zu generieren

make

Mithilfe des Makefiles, das im ersten Schritt erzeugt wurde, wird das Paket übersetzt

make test (optional)

Mit diesem Schritt wird überprüft, ob die Kompilation erfolgreich war

make install

Damit wird das Paket installiert

Hilfreich bei der Übersetzung ist die Option -n des make-Kommandos

  • Damit kann man make erst einmal trocken ausführen, um zu sehen, welche Kommandos alle ausgeführt werden und in welches Verzeichnis welche Dateien kopiert werden, um nötigenfalls das Makefile noch anpassen zu können

Auch wenn dieses Verfahren meist problemlos funktioniert, hat die Sache einen Haken: an die Deinstallati­on hat der Autor meistens nicht gedacht, d. h. ein make uninstall wird in den wenigsten Fällen klappen

  • Und so bleiben die installierten Dateien bis in alle Ewigkeit im System, es sei denn, man hat sich bei der Installation gemerkt, welche Dateien wohin kopiert wurden und löscht sie manuell

Weitere Nachteile der manuellen Installation: Auf dem Zielsystem müssen alle Werkzeuge (Compiler, Lin­ker, Make etc.), Bibliotheken und Headerdateien zum Kompilieren des Programmes vorhanden sein

  • Bei der Installation einer neueren Version eines Programmes (Update) werden evtl. die bereits vorhandenen, an das System angepassten Konfigurationsdateien der alten Version überschrieben

en (s. Tabelle)

  • Andere Unix-Systeme (z. B.  SunOS) verwenden eine andere Tar-Implementierung
  • Hier muss man zuerst das Archiv dekomprimieren (mit uncompress, gunzip oder bunzip2), ehe man die Tar-Datei auspacken kann

Vereinzelt findet man auch im Linux-Bereich Zip-Archive vor, erkennbar an der Endung .zip

  • Diese werden mit unzip ausgepackt

Nachdem das Tar-Archiv erfolgreich ausgepackt ist, sollte man nach einer Datei README oder INSTALL Ausschau halten

  • Dort steht beschrieben, wie das Paket übersetzt und installiert wird
  • Unabhängig von der Plattform und Distribution sind es meist folgende Schritte, die ausgeführt werden:
./configure oder make config

Im ersten Schritt wird untersucht, um was für ein System (Linux, Unix, ...) es sich handelt, welche Biblio­theken vorhanden sind und ob die zur Kompilierung benötigten Tools wie C-Compiler (gcc) oder Linker (ld) installiert sind, um daraus ein Makefile zu generieren

make

Mithilfe des Makefiles, das im ersten Schritt erzeugt wurde, wird das Paket übersetzt

make test (optional)

Mit diesem Schritt wird überprüft, ob die Kompilation erfolgreich war

make install

Damit wird das Paket installiert

Hilfreich bei der Übersetzung ist die Option -n des make-Kommandos

  • Damit kann man make erst einmal trocken ausführen, um zu sehen, welche Kommandos alle ausgeführt werden und in welches Verzeichnis welche Dateien kopiert werden, um nötigenfalls das Makefile noch anpassen zu können

Auch wenn dieses Verfahren meist problemlos funktioniert, hat die Sache einen Haken: an die Deinstallati­on hat der Autor meistens nicht gedacht, d. h. ein make uninstall wird in den wenigsten Fällen klappen

  • Und so bleiben die installierten Dateien bis in alle Ewigkeit im System, es sei denn, man hat sich bei der Installation gemerkt, welche Dateien wohin kopiert wurden und löscht sie manuell

Weitere Nachteile der manuellen Installation: Auf dem Zielsystem müssen alle Werkzeuge (Compiler, Lin­ker, Make etc.), Bibliotheken und Headerdateien zum Kompilieren des Programmes vorhanden sein

  • Bei der Installation einer neueren Version eines Programmes (Update) werden evtl. die bereits vorhandenen, an das System angepassten Konfigurationsdateien der alten Version überschrieben