Kompilieren

Aus Ubuntu-Forum Wiki

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
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. nicht in die Standardinstallation integriert. Es muss mindestens noch das Paket ''libc6-dev'' nachinstalliert werden:
+
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:Terminal]] [[Kategorie:HowTo]]
+
[[Kategorie:Paketverwaltung]]

Aktuelle Version vom 12. Januar 2011, 14:16 Uhr

810.png 804.png 710.png 704.png

Idee.png Begriffserklärung Idee.png
Edit l.png Dieser Artikel bedarf einer Aktualisierung. Edit.png

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:

  1. der Befehl zum Entfernen muss in exakt dem selben Verzeichnis, wie der Befehl zum Installieren abgesetzt werden.
  2. 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
Meine Werkzeuge
Namensräume
Varianten
Aktionen
Forum
Navigation
Internes
Bearbeitungshilfen
Werkzeuge