Kompilieren
Aus Ubuntu-Forum Wiki
Buba (Diskussion | Beiträge) K (Wie gesagt, bitte keine Direkt-Links zu den Benutzern) |
|||
(Der Versionsvergleich bezieht 14 dazwischenliegende Versionen mit ein.) | |||
Zeile 1: | Zeile 1: | ||
- | [[Bild:710.png]] [[Bild:704.png]] | + | [[Bild:810.png]] [[Bild:804.png]] [[Bild:710.png]] [[Bild:704.png]] |
+ | {{Begriffserklärung}} | ||
+ | {{Update}} | ||
+ | __TOC__ | ||
+ | |||
=Allgemeines= | =Allgemeines= | ||
Zunächst sollte erwähnt werden, dass Programme in [[Ubuntu]] immer mit Hilfe von [[Synaptic#Installation_von_Paketen|APT]] [[Programme_installieren|installiert]] werden sollten, um die Konsistenz des Systems nicht zu gefährden. | Zunächst sollte erwähnt werden, dass Programme in [[Ubuntu]] immer mit Hilfe von [[Synaptic#Installation_von_Paketen|APT]] [[Programme_installieren|installiert]] werden sollten, um die Konsistenz des Systems nicht zu gefährden. | ||
Zeile 5: | Zeile 9: | ||
=Systemvoraussetzungen= | =Systemvoraussetzungen= | ||
- | Aus irgendwelchen Gründen werden Header-Dateien, die für den Kompiliervorgang notwendig sind | + | Aus irgendwelchen Gründen werden Header-Dateien, die für den Kompiliervorgang notwendig sind, nicht in die Standardinstallation integriert. Es muss mindestens noch das Paket ''libc6-dev'' nachinstalliert werden: |
sudo apt-get install libc6-dev | sudo apt-get install libc6-dev | ||
Zeile 12: | Zeile 16: | ||
installieren, ein Metapaket, dass so ziemlich alle brauchbaren und zum Kompiliervorgang benötigten (inklusive libc6-dev) Pakete enthält. | installieren, ein Metapaket, dass so ziemlich alle brauchbaren und zum Kompiliervorgang benötigten (inklusive libc6-dev) Pakete enthält. | ||
+ | |||
+ | Eventuell müssen noch die Header-Dateien der jeweiligen Arbeitsumgebung installiert werden, wenn für diese Applikationen gebaut werden sollen: | ||
+ | ;KDE: | ||
+ | sudo apt-get install kdebase-dev | ||
+ | |||
+ | ;GNOME: | ||
+ | sudo apt-get install gnome-core-devel | ||
+ | |||
+ | ;Kernel: | ||
+ | Sollen Module für den Kernel kompiliert werden, müssen noch die entsprechenden Kernel-Header installiert werden | ||
+ | sudo apt-get install linux-headers-generic | ||
=Kompiliervorgang= | =Kompiliervorgang= | ||
+ | ==Herunterladen und Entpacken== | ||
Das heruntergeladene Paket des zu installierenden Programms muss dann noch [[unp|entpackt]] werden: | Das heruntergeladene Paket des zu installierenden Programms muss dann noch [[unp|entpackt]] werden: | ||
[[unp]] file_name.tar.gz | [[unp]] file_name.tar.gz | ||
Zeile 23: | Zeile 39: | ||
cd file_name | cd file_name | ||
+ | ==Installieren== | ||
Danach muss der Linux-Dreisatz ausgeführt werden: | Danach muss der Linux-Dreisatz ausgeführt werden: | ||
./configure | ./configure | ||
Zeile 28: | Zeile 45: | ||
sudo make install | sudo make install | ||
- | Sollte configure mit einer Fehlermeldung abbrechen, so liegt das meist daran, dass noch andere Pakete, die das neue Programm zum Ausführen benötigt, nachinstalliert werden. Der genaue Grund und das eventuell nachzuinstallierende Paket, steht meist in der Fehlermeldung. | + | Sollte configure mit einer Fehlermeldung abbrechen, so liegt das meist daran, dass noch andere Pakete, die das neue Programm zum Ausführen benötigt, nachinstalliert werden müssen. Der genaue Grund und das eventuell nachzuinstallierende Paket, steht meist in der Fehlermeldung. |
+ | |||
+ | Das kompilierte Paket kann auch vor der Installation gestestet werden. Der nachfolgende Befehl simuliert lediglich eine Installation. | ||
+ | make installcheck | ||
+ | |||
+ | Der Nachteil der ''make install''-Methode ist, dass so installierte Pakete nicht vom Ubuntu-Paketmanagement verwaltet werden können. Das macht eine spätere Deinstallation oder Aktualisierung komplizierter. Daher bietet es sich an, mit dem unten beschriebenen '''checkinstall''' ein .deb-File zu erzeugen. | ||
+ | |||
+ | ==Deinstallieren== | ||
+ | Da diese Pakete nicht im Systemmanagement auftauchen, ist das Deinstallieren etwas mühselig. | ||
+ | |||
+ | Pakete, die mit: | ||
+ | sudo make install | ||
+ | installiert wurden können mit durch: | ||
+ | sudo make uninstall | ||
+ | |||
+ | Allerdings müssen dafür zwei Dinge gegeben sein: | ||
+ | :# der Befehl zum Entfernen muss in exakt dem selben Verzeichnis, wie der Befehl zum Installieren abgesetzt werden. | ||
+ | :# ''configure'' muss vorher durchlaufen werden. | ||
+ | |||
+ | Sollte dies nicht funktionieren, bleibt nur der Weg über händisches Löschen der einzelnen Dateien. | ||
+ | |||
+ | =Checkinstall= | ||
+ | Anstatt das Paket mit | ||
+ | sudo make install | ||
+ | |||
+ | zu installieren, kann mit checkinstall ein Debian-Paket erzeugt werden. | ||
+ | |||
+ | ;Installieren: | ||
+ | sudo apt-get install '''checkinstall''' | ||
+ | |||
+ | ;Anwenden: | ||
+ | ./configure | ||
+ | make | ||
+ | sudo checkinstall -D | ||
+ | |||
+ | Danach können die jeweiligen Fragen beantwortet oder einfach die Standard-Einstellungen übernommen werden. Wichtig ist, dass die Frage nach dem Paketformat mit '''Debian''' beantwortet wird. | ||
+ | |||
+ | Checkinstall kann auch mit der Option ''--install=no'' aufgerufen. Damit wird nur ein .deb-Paket erstellt. Das entstandene Paket kann dann folgendermaßen installiert werden: | ||
+ | sudo dpkg -i ''neues_paket''.deb | ||
- | [[Kategorie: | + | [[Kategorie:Paketverwaltung]] |
Aktuelle Version vom 12. Januar 2011, 14:16 Uhr
Begriffserklärung |
Dieser Artikel bedarf einer Aktualisierung. |
Inhaltsverzeichnis |
1 Allgemeines
Zunächst sollte erwähnt werden, dass Programme in Ubuntu immer mit Hilfe von APT installiert werden sollten, um die Konsistenz des Systems nicht zu gefährden. Sollte es jedoch einmal notwendig sein, Programme aus dem Quellcode zu installieren, müssen in Ubuntu einige Vorarbeiten geleistet werden.
2 Systemvoraussetzungen
Aus irgendwelchen Gründen werden Header-Dateien, die für den Kompiliervorgang notwendig sind, nicht in die Standardinstallation integriert. Es muss mindestens noch das Paket libc6-dev nachinstalliert werden:
sudo apt-get install libc6-dev
Wer auf der sicheren Seite sein möchte, sollte sich:
sudo apt-get install build-essential
installieren, ein Metapaket, dass so ziemlich alle brauchbaren und zum Kompiliervorgang benötigten (inklusive libc6-dev) Pakete enthält.
Eventuell müssen noch die Header-Dateien der jeweiligen Arbeitsumgebung installiert werden, wenn für diese Applikationen gebaut werden sollen:
- KDE
sudo apt-get install kdebase-dev
- GNOME
sudo apt-get install gnome-core-devel
- Kernel
Sollen Module für den Kernel kompiliert werden, müssen noch die entsprechenden Kernel-Header installiert werden
sudo apt-get install linux-headers-generic
3 Kompiliervorgang
3.1 Herunterladen und Entpacken
Das heruntergeladene Paket des zu installierenden Programms muss dann noch entpackt werden:
unp file_name.tar.gz
bzw.
tar xfvz file_name.tar.gz
und in das neu entstandene Verzeichnis gewechselt werden:
cd file_name
3.2 Installieren
Danach muss der Linux-Dreisatz ausgeführt werden:
./configure make sudo make install
Sollte configure mit einer Fehlermeldung abbrechen, so liegt das meist daran, dass noch andere Pakete, die das neue Programm zum Ausführen benötigt, nachinstalliert werden müssen. Der genaue Grund und das eventuell nachzuinstallierende Paket, steht meist in der Fehlermeldung.
Das kompilierte Paket kann auch vor der Installation gestestet werden. Der nachfolgende Befehl simuliert lediglich eine Installation.
make installcheck
Der Nachteil der make install-Methode ist, dass so installierte Pakete nicht vom Ubuntu-Paketmanagement verwaltet werden können. Das macht eine spätere Deinstallation oder Aktualisierung komplizierter. Daher bietet es sich an, mit dem unten beschriebenen checkinstall ein .deb-File zu erzeugen.
3.3 Deinstallieren
Da diese Pakete nicht im Systemmanagement auftauchen, ist das Deinstallieren etwas mühselig.
Pakete, die mit:
sudo make install
installiert wurden können mit durch:
sudo make uninstall
Allerdings müssen dafür zwei Dinge gegeben sein:
- der Befehl zum Entfernen muss in exakt dem selben Verzeichnis, wie der Befehl zum Installieren abgesetzt werden.
- configure muss vorher durchlaufen werden.
Sollte dies nicht funktionieren, bleibt nur der Weg über händisches Löschen der einzelnen Dateien.
4 Checkinstall
Anstatt das Paket mit
sudo make install
zu installieren, kann mit checkinstall ein Debian-Paket erzeugt werden.
- Installieren
sudo apt-get install checkinstall
- Anwenden
./configure make sudo checkinstall -D
Danach können die jeweiligen Fragen beantwortet oder einfach die Standard-Einstellungen übernommen werden. Wichtig ist, dass die Frage nach dem Paketformat mit Debian beantwortet wird.
Checkinstall kann auch mit der Option --install=no aufgerufen. Damit wird nur ein .deb-Paket erstellt. Das entstandene Paket kann dann folgendermaßen installiert werden:
sudo dpkg -i neues_paket.deb