495 Stimmen

Was ist das Gegenteil von "make install", d. h. wie deinstalliert man eine Bibliothek unter Linux?

Beim Laufen

./configure --prefix=/mingw 

auf einem MinGW/MSYS-System für eine Bibliothek, die ich zuvor ausgeführt hatte

'./configure --prefix=/mingw && make && make install' 

Ich bin auf diese Nachricht gestoßen:

WARNUNG: Eine Version des Vamp-Plugin-SDK ist bereits installiert. Rechnen Sie mit Sorgen und Nöten, wenn Sie eine neue Version installieren, ohne die alte Version vorher zu entfernen. (Fortsetzung)

Das hat mich beunruhigt. Was ist das Gegenteil von "make install", d.h. wie wird eine Bibliothek unter Linux deinstalliert? Erledigt 'make clean' die Aufgabe, oder sind noch andere Schritte erforderlich?

598voto

Josh Kelley Punkte 52169

make clean entfernt alle Zwischen- oder Ausgabedateien aus Ihrem Quell-/Build-Tree. Es wirkt sich jedoch nur auf den Source-/Build-Tree aus; der Rest des Dateisystems wird nicht berührt, so dass zuvor installierte Software nicht entfernt wird.

Wenn Sie Glück haben, läuft make uninstall wird funktionieren. Es liegt jedoch an den Autoren der Bibliothek, dies bereitzustellen; einige Autoren bieten eine uninstall Ziel, andere nicht.

Wenn Sie kein Glück haben, müssen Sie es manuell deinstallieren. Ausführen von make -n install kann hilfreich sein, da es die Schritte anzeigt, die die Software zur Installation durchlaufen würde, aber nicht wirklich etwas tut. Sie können diese Schritte dann manuell rückgängig machen.

448voto

Nisse Punkte 4277

Si sudo make uninstall ist nicht verfügbar:

In einem Debian-basierten System können Sie anstelle von (oder nach*) make install können Sie sudo checkinstall um eine .deb Datei, die automatisch installiert wird. Sie können sie dann mit dem Systempaketmanager entfernen (z. B. apt / synaptic / aptitude / dpkg ). Checkinstall unterstützt auch die Erstellung anderer Pakettypen, z. B. RPM.

Siehe auch http://community.linuxmint.com/tutorial/view/162 et einige grundlegende checkinstall-Verwendung et debian checkinstall-Paket .


*: Wenn Sie dies lesen, nachdem Sie die Installation mit make install können Sie trotzdem die oben genannten Anweisungen befolgen und eine dpkg -r $PACKAGE_NAME_YOU_CHOSEN danach.

90voto

three Punkte 7926

Wenn Sie eine manifest Datei, die alle Dateien auflistet, die mit make install können Sie diesen Befehl ausführen, den ich aus einer anderen Antwort habe:

cat install_manifest.txt | xargs echo rm | sh

Wenn Sie eine sudo make install müssen Sie der Deinstallation ein sudo hinzufügen:

cat install_manifest.txt | xargs echo sudo rm | sh

45voto

ndemou Punkte 4023

Deinstallation nach "make install"

Methode #1 (Deinstallation durchführen)

Schritt 1: Sie müssen nur diesen Schritt ausführen wenn Sie das Build-Verzeichnis gelöscht/geändert haben in irgendeiner Weise: Herunterladen und make/make installieren mit dem genau dasselbe Verfahren wie zuvor.

Schritt 2: Versuchen Sie zu deinstallieren.

cd $SOURCE_DIR 
sudo make uninstall

Wenn dies gelingt, sind Sie fertig. Wenn Sie paranoid sind, können Sie auch die folgenden Schritte versuchen "Methode Nr. 3" um sicherzustellen, dass make uninstall keine Dateien übersehen hat.

Methode #2 (checkinstall -- nur für debian-basierte Systeme)

Überblick über den Prozess

In Debian-basierten Systemen (z.B. Ubuntu) können Sie eine .deb Paket sehr einfach mit Hilfe eines Werkzeugs namens checkinstall . Dann installieren Sie das .deb-Paket (dadurch erkennt Ihr Debian-System, dass alle Teile Ihres Pakets tatsächlich installiert wurden) und deinstallieren es schließlich, damit Ihr Paketmanager Ihr System ordnungsgemäß bereinigen kann.

Schritt für Schritt

sudo apt-get -y install checkinstall
cd $SOURCE_DIR 
sudo checkinstall

Zu diesem Zeitpunkt checkinstall wird nach einem Paketnamen gefragt. Geben Sie etwas Beschreibendes ein und notieren Sie ihn, denn Sie werden ihn gleich verwenden. Es wird auch nach einigen weiteren Daten gefragt, die Sie ignorieren können. Wenn es sich darüber beschwert, dass die Version nicht akzeptabel ist, geben Sie einfach etwas Vernünftiges ein wie 1.0 . Nach Abschluss des Vorgangs können Sie das Programm installieren und anschließend deinstallieren:

sudo dpkg -i $PACKAGE_NAME_YOU_ENTERED 
sudo dpkg -r $PACKAGE_NAME_YOU_ENTERED

Methode Nr. 3 (install_manifest.txt)

Wenn eine Datei install_manifest.txt in Ihrem Quellverzeichnis vorhanden ist, sollte sie die Dateinamen jeder einzelnen Datei enthalten, die von der Installation erstellt wurde.

Überprüfen Sie also zunächst die Liste der Dateien und ihre Mod-Zeit:

cd $SOURCE_DIR 
sudo xargs -I{} stat -c "%z %n" "{}" < install_manifest.txt

Sie sollten sich Null-Fehler und die Mod-Zeiten der aufgelisteten Dateien sollten sein am oder nach die Installationszeit. Wenn alles in Ordnung ist, können Sie sie in einem Rutsch löschen:

cd $SOURCE_DIR 
mkdir deleted-by-uninstall
sudo xargs -I{} mv -t deleted-by-uninstall "{}" < install_manifest.txt

Der Benutzer Merlyn Morgan-Graham hat jedoch einen ernsthaften Hinweis zu dieser Methode, den Sie beachten sollten (hier wörtlich kopiert): "Achten Sie auf Dateien, die möglicherweise auch von anderen Paketen installiert wurden. Das einfache Löschen dieser Dateien [...] könnte die anderen Pakete zerstören." . Das ist der Grund, warum wir die deleted-by-uninstall Verzeichnis und verschob Dateien dorthin, anstatt sie zu löschen.


99% dieses Beitrags gab es schon in anderen Antworten. Ich habe einfach alles Nützliche in einer (hoffentlich) leicht zu befolgenden Anleitung gesammelt und versucht, wichtigen Details (wie dem Zitieren von xarg-Argumenten und dem Erstellen von Sicherungskopien gelöschter Dateien) besondere Aufmerksamkeit zu schenken.

36voto

Joachim Sauer Punkte 290477

Je nachdem, wie gut das makefile/configure script/autofoo magic des fraglichen Programms ist, könnte das Folgende Ihr Problem lösen:

make uninstall

Das Problem ist, dass Sie dies auf dem Quellbaum der installierten Version und mit genau der gleichen Konfiguration ausführen sollten, die Sie für die Installation verwendet haben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X