Software aus dem Quelltext Installieren/Deinstallieren: Unterschied zwischen den Versionen
(→Links) |
|||
(7 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 7: | Zeile 7: | ||
== Allgemeines == | == Allgemeines == | ||
− | + | Um Programme unter Linux aus dem Quelltext zu installieren, müssen zunächst die entsprechenden Compiler-Werkzeuge installiert werden.<br/> | |
+ | Compiler: gcc | ||
+ | Werkzeuge: make, automake, autoconf | ||
+ | Bei den Paketmanagern der meisten Distributionen sind diese Entwicklertools bereits unter einer Paketgruppe bzw. einem virtuellen Paket zusammengefasst um eine einfache Installation zu ermöglichen.<br/> | ||
+ | <br/> | ||
+ | '''SuSE Linux:''' | ||
+ | * YAST starten | ||
+ | * Kategorie: Software | ||
+ | * Punkt: Software installieren oder löschen | ||
+ | * Filter: Selektionen | ||
+ | * Gruppe: C/C++ Compiler und Werkzeuge | ||
+ | => Übernehmen<br/> | ||
+ | <br/> | ||
+ | '''Debian GNU/Linux:'''<br/> | ||
+ | apt-get install build-essential | ||
+ | <br/> | ||
+ | Zusätzlich sollten natürlich noch die für das zu installierende Programm benötigten '''*-devel Pakete''' installiert werden.<br/> | ||
+ | Meist finden sich auf der Projekt/Hersteller Seite Hinweise oder eine Übersicht, der zum Übersetzen benötigten Pakete.<br/> | ||
+ | Spätestens der Aufruf von ''configure'' sollte dann darüber Aufschluss geben. ;-)<br/> | ||
+ | <br/> | ||
== Installation == | == Installation == | ||
+ | Zuerst muss der Quellcode des zu installierenden Programms heruntergeladen werden.<br/> | ||
+ | Dieser liegt in der Regel als tar-Archiv, dass mit gzip oder bzip2 komprimiert wurde, vor.<br/> | ||
+ | Die Dateiendungen für diese Archive sind: *.tar.gz, *.tgz oder *.tar.bz2.<br/> | ||
<br/> | <br/> | ||
+ | Dann legt man sich am Besten ein eigenes Verzeichnis für das Übersetzen an:<br/> | ||
+ | mkdir -p /tmp/programm | ||
+ | Dann in das Verzeichnis wechseln:<br/> | ||
+ | cd /tmp/programm | ||
+ | Und das Paket mit dem Quellcode herunterladen:<br/> | ||
+ | wget ist der Downloadmanager für die Konsole.<br/> | ||
+ | ''Mit der Option '''<u>c</u>''' kann der Download im Fall eines Abbruchs wiederaufgenommen werden.''<br/> | ||
+ | wget -c <URL> | ||
+ | Anschließend das Archiv entpacken:<br/> | ||
+ | '''''<u>x</u>''' weist tar an, das Paket zu entpacken''<br/> | ||
+ | '''''<u>j</u>''' um bzip2-Archive zu entpacken''<br/> | ||
+ | oder: '''''<u>z</u>''' um gzip-Archive zu entpacken''<br/> | ||
+ | '''''<u>v</u>''' für eine ausführliche Ausgabe (Optional)''<br/> | ||
+ | '''''<u>f</u>''' als letzte Option bezeichnet die zu entpackende Datei''<br/> | ||
+ | tar -xjvf <Paket> | ||
+ | Das Archiv wird in der Regel in ein eigenes Unterverzeichnis entpackt.<br/> | ||
+ | cd <Paket-Verzeichnis> | ||
+ | <br/> | ||
+ | '''Achtung!'''<br/> | ||
+ | An dieser Stelle empfiehlt es sich unbedingt einen Blick in die, den meisten Archiven beiliegende, README oder INSTALL Datei zu werfen!<br/> | ||
+ | In dieser befinden sich unter Umständen wichtige Informationen, Hinweise oder eine Anleitung zur Installation des Programms.<br/> | ||
+ | <br/> | ||
+ | Den meisten Paketen liegt ein ''configure''-Script bei, dass die Paketabhängigkeiten überprüft.<br/> | ||
+ | Also zuerst einmal<br/> | ||
+ | ./configure --help | ||
+ | ausführen, um sich die verfügbaren Optionen für dieses Paket anzeigen zu lassen.<br/> | ||
+ | Anschließend der eigentliche Aufruf von ''configure'':<br/> | ||
+ | z.B. mit der Option ''prefix'' (empfohlen) - Installiert das Programm unterhalb von ''/usr/local''<br/>(die Bibliotheken in ''/usr/local/lib'', die Binaries in ''/usr/local/bin'', ...) | ||
+ | ./configure --prefix=/usr/local | ||
+ | <br/> | ||
+ | '''Achtung!'''<br/>ermöglicht der Aufruf von make distclean die Kompilierung des Programms für andere Systeme. | ||
+ | Falls ''configure'' mit einem Fehler abbricht, bedeutet dies '''meistens''', dass wichtige Pakete/Bibliotheken zum Übersetzen des Programms fehlen.<br/> | ||
+ | In der Regel, kann dies mit dem Nachhinstallieren der entsprechenden *-devel Pakete behoben werden.<br/> | ||
+ | Danach wieder ''configure'' starten, bis keine Fehler mehr auftauchen.<br/> | ||
+ | <br/> | ||
+ | Anschließend starten wir den eigentlichen Kompiliervorgang:<br/> | ||
+ | make | ||
+ | '''Achtung!'''<br/> | ||
+ | Falls während des Übersetzens Fehler auftreten kann dies diverse Ursachen haben:<br/> | ||
+ | z.B. fehlende Abhängigkeiten die von ''configure'' nicht berücksichtigt wurden, Fehler im Quellcode, falsche Kompilerversion, ...<br/> | ||
+ | Ein allgemeines Vorgehen an dieser Stelle gibt es nicht.<br/> | ||
+ | Eine Suche nach der Fehlermeldung bei [http://www.google.de Google], in Fachforen oder im [http://www.linux-club.de Linux-Club] ;-) kann dabei helfen.<br/> | ||
+ | <br/> | ||
+ | Für das Posten in Foren gilt:<br/> | ||
+ | Folgende Angaben sollten gemacht werden:<br/> | ||
+ | * Name und Version der verwendeten Distribution | ||
+ | * Name und Version des Programms (inklusive Quelle/Link zum Download) | ||
+ | * Die letzten 10-15 Zeilen vor der ersten auftretenden Fehlermeldung posten | ||
+ | * Die bei ''configure'' verwendeten Optionen | ||
+ | * Compilerversion | ||
+ | <br/> | ||
+ | Wenn der Aufruf von ''make'' erfolgreich war, kann die eigentliche Installation durchgeführt werden.<br/> | ||
+ | Bisher wurden noch '''keine''' Veränderungen am System vorgenommen.<br/> | ||
+ | Für den nächsten Schritt werden Systemverwalterrechte (root-Rechte) benötigt, um die gerade übersetzten Dateien in die entsprechenden Ordner im Dateisystem zu kopieren.<br/> | ||
+ | su - | ||
+ | <Eingabe des root-Passwortes> | ||
+ | make install | ||
+ | Wichtig! | ||
+ | Anstatt ''make install'' sollte unbedingt checkinstall (Verfügbar für Slackware sowie alle rpm- und Debianbasierte Distributionen) verwendet werden.<br/> | ||
+ | Siehe [[#Variante checkinstall|Variante checkinstall]].<br/> | ||
+ | <br/> | ||
+ | Um den Installationsvorgang sauber abzuschließen sollte im Quellverzeichnis noch ein<br/> | ||
+ | make clean | ||
+ | ausgeführt werden.<br/> | ||
+ | Damit werden die gerade übersetzten Programmdateien wieder entfernt.<br/> | ||
+ | Um auch die vom configure-Skript erstellten Dateien zu löschen, bedarf es des Aufrufs von | ||
+ | make distclean | ||
+ | Dieses Aufräumen ist nicht zwingend notwendig.<br/> | ||
+ | Allerdings ermöglicht der Aufruf von ''make distclean'' die Kompilierung des Programms für andere Systeme.<br/> | ||
<br/> | <br/> | ||
− | == Installation | + | === Variante '''checkinstall''' === |
+ | Das Programm ''checkinstall'' ermöglicht es Pakete aus dem Quellcode zu installieren '''ohne''' dabei die Paketverwaltung der jeweiligen Distribution zu übergehen.<br/> | ||
+ | Dabei protokolliert ''checkinstall'' den Installationsvorgang und generiert nach dem erfolgreichen Durchlauf von ''make install'' ein distributionsspezifisches Paket, installiert dieses dann mit der jeweiligen Paketverwaltung und hinterlässt eine Kopie des Pakets im aktuellen Quellverzeichnis oder am standardmäßigen Speicherort der benutzten Distribution.<br/> | ||
+ | Diese Kopie lässt sich dann in der Regel auch, unter Berücksichtigung etwaiger Paketabhängigkeiten, auf anderen Maschinen im Netzwerk installieren, ohne jedesmal aufs Neue kompilieren zu müssen.<br/> | ||
+ | <br/> | ||
+ | Die Installation erfolgt analog zu dem unter [[#Installation|Installation]] erläuterten Ablauf - bis zu dem Punkt an dem die Programmdateien mittels ''make install'' ins System kopiert werden sollten.<br/> | ||
+ | An dieser Stelle kommt ''checkinstall'' ins Spiel und ersetzt ''make install'' durch den Befehl '''checkinstall'''.<br/> | ||
+ | Die beiden anderen Kommandos bleiben davon unberührt und werden, ihrem Zweck entsprechend, weiterhin wie gewohnt genutzt.<br/> | ||
+ | Die Befehlsfolge unter Verwendung des Tools CheckInstall lautet also wie folgt:<br/> | ||
+ | ./configure --prefix=/usr/local | ||
+ | make | ||
+ | checkinstall | ||
+ | ''checkinstall'' fragt daraufhin, ob für das Paket eine Documentation erstellt werden soll sowie nach einer Beschreibung für das zu ertstellende Paket und bietet die Möglichkeit verschiedene Paketinformationen (Name, Version, Beschreibung, Kategorie, ...) zu verändern.<br/> | ||
+ | Nach der Bestätigung dieser Abfragen erstellt ''checkinstall'' das Paket und zeigt nach erfolgreichem Abschluss Informationen über Installation/Deinstallation sowie Speicherort des Pakets an.<br/> | ||
<br/> | <br/> | ||
+ | '''Anmerkung:'''<br/> | ||
+ | Manchmal kann es vorkommen, dass ''checkinstall'' trotz erfolgreichem Kompiliervorgang beim Erstellen des Pakets abbricht.<br/> | ||
+ | An dieser Stelle hilft ein Aufruf von<br/> | ||
+ | make install | ||
+ | mit anschließendem<br/> | ||
+ | checkinstall | ||
+ | Bei der Installation des erstelleten Pakets werden die mit ''make install'' installierten Dateien dann wieder überschrieben und ordnungsgemäß in der Paketdatenbank eingetragen, so dass das Programm später trotzdem problemlos über die Paketverwaltung entfernt werden kann.<br/> | ||
<br/> | <br/> | ||
== Deinstallation == | == Deinstallation == | ||
+ | Die Deinstallation von Programmen die aus dem Quellcode kompiliert/installiert wurden gestaltet sich schwierig.<br/> | ||
+ | Die meisten Programme bestehen aus vielen Einzeldateien (Bibliotheken, Binaries, Dokumentation, ...), die alle in die entsprechenden Verzeichnisse kopiert wurden (*/lib, */bin, */shrare, */share/doc).<br/> | ||
+ | Aus diesem Grund empfiehlt es sich eine Installationsart zu wählen, die später eine möglichst einfache Deinstallation des Programms ermöglicht.<br/> | ||
+ | z.B. die Verwendung von [[#Variante checkinstall|checkinstall]]<br/> | ||
+ | Sollte dies nicht der Fall gewesen sein, müssen alle alle installierten Dateien von Hand gelöscht werden:<br/> | ||
+ | Um zu rekonstruieren, welche Dateien mit diesem Programm installiert wurden, empfiehlt es sich die [[#Installation|Installation]] zu wiederholen:<br/> | ||
+ | Als '''prefix''' verwendet man (neben den außerdem benutzten ''configure''-Optionen) das '''tmp-Verzeichnis'''.<br/> | ||
+ | Zusammenfassung: | ||
+ | ./configure --prefix=/tmp/programm | ||
+ | make | ||
+ | make install | ||
+ | Im Verzeichnis '''/tmp/programm''' erhält man nun eine Abbildung der Struktur des '''/usr''' bzw. '''/usr/local''' Verzeichnisses mit allen von dem Programm installierten Dateien.<br/> | ||
+ | Dieses Verzeichnis kann man jetzt mit dem (bei der Erstinstallation verwendeten) Systemverzeichnis vergleichen und die zu dem Programm gehörigen Dateien löschen.<br/> | ||
+ | Nachteil: Evtuelle Paketabhängigkeiten von anderen Paketen können dabei ebenfalls gelöscht werden.<br/> | ||
<br/> | <br/> | ||
− | |||
+ | == Links == | ||
+ | |||
+ | http://asic-linux.com.mx/~izto/checkinstall/<br/> | ||
+ | http://www.linuxwiki.org/CheckInstall<br/> | ||
+ | http://www.tldp.org/linuxfocus/Deutsch/December2004/article360.shtml<br/> | ||
+ | |||
+ | <br/>''Originalhowtos:''<br/> | ||
+ | ''checkinstall ([[Benutzer:admine|admine]]), Programme unter SuSE Linux deinstallieren ([[Benutzer:admine|admine]])'' | ||
+ | |||
+ | <br/><br/> | ||
+ | [[Konsole|Zurück zu Konsole]] | ||
[[Category:Konsole]] | [[Category:Konsole]] |
Aktuelle Version vom 11. Oktober 2006, 19:20 Uhr
Inhaltsverzeichnis
Software aus dem Quelltext Installieren/Deinstallieren
Wie installiere ich Software aus dem Quelltext?
Wie entferne ich selbst kompilierte Software wieder?
Allgemeines
Um Programme unter Linux aus dem Quelltext zu installieren, müssen zunächst die entsprechenden Compiler-Werkzeuge installiert werden.
Compiler: gcc Werkzeuge: make, automake, autoconf
Bei den Paketmanagern der meisten Distributionen sind diese Entwicklertools bereits unter einer Paketgruppe bzw. einem virtuellen Paket zusammengefasst um eine einfache Installation zu ermöglichen.
SuSE Linux:
- YAST starten
- Kategorie: Software
- Punkt: Software installieren oder löschen
- Filter: Selektionen
- Gruppe: C/C++ Compiler und Werkzeuge
=> Übernehmen
Debian GNU/Linux:
apt-get install build-essential
Zusätzlich sollten natürlich noch die für das zu installierende Programm benötigten *-devel Pakete installiert werden.
Meist finden sich auf der Projekt/Hersteller Seite Hinweise oder eine Übersicht, der zum Übersetzen benötigten Pakete.
Spätestens der Aufruf von configure sollte dann darüber Aufschluss geben. ;-)
Installation
Zuerst muss der Quellcode des zu installierenden Programms heruntergeladen werden.
Dieser liegt in der Regel als tar-Archiv, dass mit gzip oder bzip2 komprimiert wurde, vor.
Die Dateiendungen für diese Archive sind: *.tar.gz, *.tgz oder *.tar.bz2.
Dann legt man sich am Besten ein eigenes Verzeichnis für das Übersetzen an:
mkdir -p /tmp/programm
Dann in das Verzeichnis wechseln:
cd /tmp/programm
Und das Paket mit dem Quellcode herunterladen:
wget ist der Downloadmanager für die Konsole.
Mit der Option c kann der Download im Fall eines Abbruchs wiederaufgenommen werden.
wget -c <URL>
Anschließend das Archiv entpacken:
x weist tar an, das Paket zu entpacken
j um bzip2-Archive zu entpacken
oder: z um gzip-Archive zu entpacken
v für eine ausführliche Ausgabe (Optional)
f als letzte Option bezeichnet die zu entpackende Datei
tar -xjvf <Paket>
Das Archiv wird in der Regel in ein eigenes Unterverzeichnis entpackt.
cd <Paket-Verzeichnis>
Achtung!
An dieser Stelle empfiehlt es sich unbedingt einen Blick in die, den meisten Archiven beiliegende, README oder INSTALL Datei zu werfen!
In dieser befinden sich unter Umständen wichtige Informationen, Hinweise oder eine Anleitung zur Installation des Programms.
Den meisten Paketen liegt ein configure-Script bei, dass die Paketabhängigkeiten überprüft.
Also zuerst einmal
./configure --help
ausführen, um sich die verfügbaren Optionen für dieses Paket anzeigen zu lassen.
Anschließend der eigentliche Aufruf von configure:
z.B. mit der Option prefix (empfohlen) - Installiert das Programm unterhalb von /usr/local
(die Bibliotheken in /usr/local/lib, die Binaries in /usr/local/bin, ...)
./configure --prefix=/usr/local
Achtung!
ermöglicht der Aufruf von make distclean die Kompilierung des Programms für andere Systeme.
Falls configure mit einem Fehler abbricht, bedeutet dies meistens, dass wichtige Pakete/Bibliotheken zum Übersetzen des Programms fehlen.
In der Regel, kann dies mit dem Nachhinstallieren der entsprechenden *-devel Pakete behoben werden.
Danach wieder configure starten, bis keine Fehler mehr auftauchen.
Anschließend starten wir den eigentlichen Kompiliervorgang:
make
Achtung!
Falls während des Übersetzens Fehler auftreten kann dies diverse Ursachen haben:
z.B. fehlende Abhängigkeiten die von configure nicht berücksichtigt wurden, Fehler im Quellcode, falsche Kompilerversion, ...
Ein allgemeines Vorgehen an dieser Stelle gibt es nicht.
Eine Suche nach der Fehlermeldung bei Google, in Fachforen oder im Linux-Club ;-) kann dabei helfen.
Für das Posten in Foren gilt:
Folgende Angaben sollten gemacht werden:
- Name und Version der verwendeten Distribution
- Name und Version des Programms (inklusive Quelle/Link zum Download)
- Die letzten 10-15 Zeilen vor der ersten auftretenden Fehlermeldung posten
- Die bei configure verwendeten Optionen
- Compilerversion
Wenn der Aufruf von make erfolgreich war, kann die eigentliche Installation durchgeführt werden.
Bisher wurden noch keine Veränderungen am System vorgenommen.
Für den nächsten Schritt werden Systemverwalterrechte (root-Rechte) benötigt, um die gerade übersetzten Dateien in die entsprechenden Ordner im Dateisystem zu kopieren.
su - <Eingabe des root-Passwortes> make install
Wichtig!
Anstatt make install sollte unbedingt checkinstall (Verfügbar für Slackware sowie alle rpm- und Debianbasierte Distributionen) verwendet werden.
Siehe Variante checkinstall.
Um den Installationsvorgang sauber abzuschließen sollte im Quellverzeichnis noch ein
make clean
ausgeführt werden.
Damit werden die gerade übersetzten Programmdateien wieder entfernt.
Um auch die vom configure-Skript erstellten Dateien zu löschen, bedarf es des Aufrufs von
make distclean
Dieses Aufräumen ist nicht zwingend notwendig.
Allerdings ermöglicht der Aufruf von make distclean die Kompilierung des Programms für andere Systeme.
Variante checkinstall
Das Programm checkinstall ermöglicht es Pakete aus dem Quellcode zu installieren ohne dabei die Paketverwaltung der jeweiligen Distribution zu übergehen.
Dabei protokolliert checkinstall den Installationsvorgang und generiert nach dem erfolgreichen Durchlauf von make install ein distributionsspezifisches Paket, installiert dieses dann mit der jeweiligen Paketverwaltung und hinterlässt eine Kopie des Pakets im aktuellen Quellverzeichnis oder am standardmäßigen Speicherort der benutzten Distribution.
Diese Kopie lässt sich dann in der Regel auch, unter Berücksichtigung etwaiger Paketabhängigkeiten, auf anderen Maschinen im Netzwerk installieren, ohne jedesmal aufs Neue kompilieren zu müssen.
Die Installation erfolgt analog zu dem unter Installation erläuterten Ablauf - bis zu dem Punkt an dem die Programmdateien mittels make install ins System kopiert werden sollten.
An dieser Stelle kommt checkinstall ins Spiel und ersetzt make install durch den Befehl checkinstall.
Die beiden anderen Kommandos bleiben davon unberührt und werden, ihrem Zweck entsprechend, weiterhin wie gewohnt genutzt.
Die Befehlsfolge unter Verwendung des Tools CheckInstall lautet also wie folgt:
./configure --prefix=/usr/local make checkinstall
checkinstall fragt daraufhin, ob für das Paket eine Documentation erstellt werden soll sowie nach einer Beschreibung für das zu ertstellende Paket und bietet die Möglichkeit verschiedene Paketinformationen (Name, Version, Beschreibung, Kategorie, ...) zu verändern.
Nach der Bestätigung dieser Abfragen erstellt checkinstall das Paket und zeigt nach erfolgreichem Abschluss Informationen über Installation/Deinstallation sowie Speicherort des Pakets an.
Anmerkung:
Manchmal kann es vorkommen, dass checkinstall trotz erfolgreichem Kompiliervorgang beim Erstellen des Pakets abbricht.
An dieser Stelle hilft ein Aufruf von
make install
mit anschließendem
checkinstall
Bei der Installation des erstelleten Pakets werden die mit make install installierten Dateien dann wieder überschrieben und ordnungsgemäß in der Paketdatenbank eingetragen, so dass das Programm später trotzdem problemlos über die Paketverwaltung entfernt werden kann.
Deinstallation
Die Deinstallation von Programmen die aus dem Quellcode kompiliert/installiert wurden gestaltet sich schwierig.
Die meisten Programme bestehen aus vielen Einzeldateien (Bibliotheken, Binaries, Dokumentation, ...), die alle in die entsprechenden Verzeichnisse kopiert wurden (*/lib, */bin, */shrare, */share/doc).
Aus diesem Grund empfiehlt es sich eine Installationsart zu wählen, die später eine möglichst einfache Deinstallation des Programms ermöglicht.
z.B. die Verwendung von checkinstall
Sollte dies nicht der Fall gewesen sein, müssen alle alle installierten Dateien von Hand gelöscht werden:
Um zu rekonstruieren, welche Dateien mit diesem Programm installiert wurden, empfiehlt es sich die Installation zu wiederholen:
Als prefix verwendet man (neben den außerdem benutzten configure-Optionen) das tmp-Verzeichnis.
Zusammenfassung:
./configure --prefix=/tmp/programm make make install
Im Verzeichnis /tmp/programm erhält man nun eine Abbildung der Struktur des /usr bzw. /usr/local Verzeichnisses mit allen von dem Programm installierten Dateien.
Dieses Verzeichnis kann man jetzt mit dem (bei der Erstinstallation verwendeten) Systemverzeichnis vergleichen und die zu dem Programm gehörigen Dateien löschen.
Nachteil: Evtuelle Paketabhängigkeiten von anderen Paketen können dabei ebenfalls gelöscht werden.
Links
http://asic-linux.com.mx/~izto/checkinstall/
http://www.linuxwiki.org/CheckInstall
http://www.tldp.org/linuxfocus/Deutsch/December2004/article360.shtml
Originalhowtos:
checkinstall (admine), Programme unter SuSE Linux deinstallieren (admine)