Während dem Rennen
./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. Erwarten Sie Sorgen und Sorgen, wenn Sie eine neue Version installieren, ohne zuerst die alte zu entfernen. (Auch weiterhin)
Das hatte mich beunruhigt. Was ist das Gegenteil von 'make install', dh wie wird eine Bibliothek unter Linux deinstalliert? Wird "sauber machen" die Arbeit erledigen, oder sind andere Schritte erforderlich?
sudo make uninstall
wenn die Installationskonfigurationsdateien noch verfügbar sind, wenn nicht, aber keine anderen offensichtlichen Lösungen, abgesehen von der Deinstallation mit dem Systempaketverwaltungsdienstprogramm, wenn es mit "checkinstall" installiert wurde " Nützlichkeit.make install
ich sie niemake uninstall
entfernen. Ich habe immer verwendetxargs rm < install_manifest.txt
Antworten:
make clean
Entfernt alle Zwischen- oder Ausgabedateien aus Ihrem Quell- / Build-Baum. Dies betrifft jedoch nur den Quell- / Build-Baum. Der Rest des Dateisystems wird nicht berührt, und zuvor installierte Software wird nicht entfernt.Wenn Sie Glück haben,
make uninstall
funktioniert das Laufen . Es liegt jedoch an den Autoren der Bibliothek, dies bereitzustellen. Einige Autoren geben einuninstall
Ziel an, andere nicht.Wenn Sie kein Glück haben, müssen Sie es manuell deinstallieren. Das Ausführen
make -n install
kann hilfreich sein, da es die Schritte anzeigt, die die Software zur Installation selbst ausführen würde, aber eigentlich nichts unternimmt. Sie können diese Schritte dann manuell umkehren.quelle
Wenn
sudo make uninstall
nicht verfügbar:In einem System , Debian basiert, anstelle von (oder nach dem *) tun
make install
Sie ausführen können ,sudo checkinstall
eine machen.deb
Datei , die automatisch installiert wird. Sie können es dann mit dem Systempaket-Manager (z. B.apt
/synaptic
/aptitude
/dpkg
) entfernen . Checkinstall unterstützt auch das Erstellen anderer Pakettypen, z. B. RPM.Siehe auch http://community.linuxmint.com/tutorial/view/162 und einige grundlegende Checkinstall-Verwendungs- und Debian-Checkinstall-Pakete .
*: Wenn Sie dies nach der Installation mit lesen, können
make install
Sie trotzdem die obigen Anweisungen befolgen und anschließend einedpkg -r $PACKAGE_NAME_YOU_CHOSEN
ausführen.quelle
make install
vor der Verwendung gelaufen warcheckinstall
.checkinstall
damit diese hervorragende Antwort funktioniert.checkinstall
Wenn die neue Kompilierung mit denselben Einstellungen wie die alte durchgeführt wird, wird das installierte Paket deinstalliert mitcheckinstall
sollte die zuvor installierten Dateien entfernen.Wenn Sie eine
manifest
Datei haben, in der alle Dateien aufgelistet sind, die mit installiert wurdenmake install
, können Sie diesen Befehl ausführen, den ich aus einer anderen Antwort habe:Wenn Sie haben
sudo make install
, müssen Sie ein Sudo zu Ihrer Deinstallation hinzufügen:quelle
xargs echo rm | sh
? Es liegt auf der Hand, dass jeder, der dies vorschlug, nicht besonders erfahren oder mit der Verwendung der Shell vertraut ist.install_manifest.txt
ein Sternchen enthält ...rm *
wird in eine Shell geleitet.) Aus diesem Grund Downvoted.install_manifest.txt
Existenz zu erwarten ist?Abhängig davon, wie gut die Magie von makefile / configure script / autofoo des betreffenden Programms ist, kann Folgendes Ihr Problem lösen:
Das Problem ist, dass Sie dies im Quellbaum der installierten Version und mit genau der Konfiguration ausführen sollten, die Sie für die Installation verwendet haben.
quelle
So deinstallieren Sie nach "make install"
Methode 1 (Deinstallation durchführen)
Schritt 1: Sie müssen diesen Schritt nur ausführen, wenn Sie das Build-Verzeichnis auf irgendeine Weise gelöscht / geändert haben : Laden Sie die Installation herunter und führen Sie sie nach genau dem gleichen Verfahren wie zuvor durch.
Schritt 2: Versuchen Sie, deinstallieren zu lassen.
Wenn dies gelingt, sind Sie fertig. Wenn Sie paranoid sind, können Sie auch die Schritte von "Methode 3" ausführen, um sicherzustellen
make uninstall
, dass keine Dateien übersehen wurden.Methode 2 (checkinstall - nur für Debian-basierte Systeme)
Übersicht über den Prozess
In Debian-basierten Systemen (z. B. Ubuntu) können Sie
.deb
mit einem Tool namens sehr einfach ein Paket erstellencheckinstall
. Anschließend installieren Sie das .deb-Paket (dadurch wird Ihrem Debian-System klar, dass alle Teile Ihres Pakets tatsächlich installiert wurden) und deinstallieren es schließlich, damit Ihr Paketmanager Ihr System ordnungsgemäß bereinigt.Schritt für Schritt
An dieser Stelle
checkinstall
werden Sie zur Eingabe eines Paketnamens aufgefordert. Geben Sie etwas Beschreibendes ein und notieren Sie es, da Sie es in einer Minute verwenden werden. Außerdem werden einige weitere Daten angefordert, die Sie ignorieren können. Wenn es sich darüber beschwert, dass die Version nicht akzeptabel war, geben Sie einfach etwas Vernünftiges ein1.0
. Wenn es abgeschlossen ist, können Sie installieren und schließlich deinstallieren:Methode 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 zuerst die Liste der Dateien und ihre Mod-Zeit:
Sie sollten keine Fehler erhalten und die Mod-Zeiten der aufgelisteten Dateien sollten auf oder nach der Installationszeit sein. Wenn alles in Ordnung ist, können Sie sie auf einmal löschen:
Benutzer Merlyn Morgan-Graham hat jedoch einen ernsthaften Hinweis bezüglich dieser Methode, den Sie beachten sollten (hier wörtlich kopiert): "Achten Sie auf Dateien, die möglicherweise auch von anderen Paketen installiert wurden. Löschen Sie diese Dateien einfach [...] brechen Sie die anderen Pakete. " . Aus diesem Grund haben wir das Verzeichnis erstellt
deleted-by-uninstall
und Dateien dorthin verschoben, anstatt sie zu löschen.99% dieses Beitrags waren in anderen Antworten vorhanden. Ich habe gerade alles Nützliche in einer (hoffentlich) leicht verständlichen Anleitung gesammelt und versucht, wichtigen Details (wie dem Zitieren von xarg-Argumenten und dem Speichern von gelöschten Dateien) besondere Aufmerksamkeit zu widmen.
quelle
make clean
Im Allgemeinen werden nur erstellte Dateien im Verzeichnis bereinigt, das den Quellcode selbst enthält, und es wird selten eine installierte Software berührt.Makefiles enthalten im Allgemeinen kein Ziel für die Deinstallation - normalerweise müssen Sie dies selbst tun, indem Sie die Dateien aus dem Verzeichnis entfernen, in dem sie installiert wurden. Zum Beispiel gebaut , wenn Sie ein Programm und installiert es (mit
make install
) in/usr/local
, würden Sie wollen , schauen durch/usr/local/bin
,/usr/local/libexec
,/usr/local/share/man
usw., und entfernen Sie die unerwünschten Dateien. Manchmal enthält ein Makefile einuninstall
Ziel, aber nicht immer.Natürlich installieren Sie normalerweise auf einem Linux-System Software mithilfe eines Paketmanagers , mit dem Software "automatisch" deinstalliert werden kann.
quelle
Das Dienstprogramm "stow" wurde entwickelt, um dieses Problem zu lösen: http://www.gnu.org/software/stow/
quelle
stow
, um dieses Problem zu lösen?Es gibt leider keinen Standard, dies ist eine der Gefahren bei der Installation von der Quelle. Einige Makefiles enthalten also eine "Deinstallation"
aus dem Quellverzeichnis kann funktionieren. Andernfalls kann es darum gehen, alles, was
make install
getan wurde, manuell rückgängig zu machen .make clean
Bereinigt normalerweise nur das Quellverzeichnis - entfernt generierte / kompilierte Dateien und dergleichen, wahrscheinlich nicht das, wonach Sie suchen.quelle
Ich kenne nur wenige Pakete, die "make deinstallieren" unterstützen, aber viele weitere, die make install DESTDIR = xxx "für inszenierte Installationen unterstützen.
Sie können dies verwenden, um ein Paket zu erstellen, das Sie installieren, anstatt es direkt von der Quelle zu installieren. Ich hatte kein Glück mit checkinstall, aber fpm funktioniert sehr gut.
Dies kann Ihnen auch dabei helfen, ein zuvor mit make install installiertes Paket zu entfernen . Sie erzwingen einfach die Installation Ihres erstellten Pakets über das make installierte und deinstallieren es dann.
Zum Beispiel habe ich dies kürzlich verwendet, um mich mit protobuf-3.3.0 zu befassen. Auf RHEL7:
Wenn möglich, bevorzugen Sie Yum gegenüber RPM.
Auf Debian9:
Ziehen Sie es vor, dpkg zu verwenden, wo Sie können.
Ich habe auch gepostet diese Antwort hier
quelle
Make
kann Ihnen sagen, was es weiß und was es tun wird. Angenommen, Sie haben ein "Installations" -Ziel, das Befehle wie die folgenden ausführt:Fügen Sie in Ihren allgemeinen Regeln Folgendes hinzu:
Ein ähnlicher Trick kann ein Generikum machen
make clean
.quelle
Präambel
unten kann funktionieren oder nicht, dies ist alles so wie es ist, Sie und nur Sie sind verantwortliche Person im Falle von Schäden, Datenverlust und so weiter. Aber ich hoffe, es läuft reibungslos!
Zum Rückgängigmachen
make install
würde ich Folgendes tun (und ich tat es):Idee: Überprüfen Sie, welches Skript installiert ist, und machen Sie dies mit einem einfachen Bash-Skript rückgängig.
--prefix=$PWD/install
. Für CMake können Sie in Ihr Build-Verzeichnis wechseln, CMakeCache.txt öffnen und den Wert CMAKE_INSTALL_PREFIX korrigieren.make install
erneut aus).make install
Skript in ein benutzerdefiniertes Verzeichnis installiert wird, genau den Inhalt, den Sie (normalerweise/usr/local
) von einem anderen Ort entfernen möchten . Wir brauchen also ein Skript. 3.1. Das Skript sollte das benutzerdefinierte Verzeichnis mit dem Verzeichnis vergleichen, das Sie bereinigen möchten. Ich benutze das:anti-install.sh
3.2. Führen Sie jetzt einfach dieses Skript aus (es wird trocken laufen)
Beispiel: Sie möchten / usr / local nicht bereinigen, und Ihr benutzerdefiniertes Installationsverzeichnis lautet /user/me/llvm.build/install
3.3. Überprüfen Sie das Protokoll sorgfältig. Wenn Befehle für Sie gut sind, kommentieren Sie es aus
rm $RM_DIR/$fn
und führen Sie es erneut aus. Aber hör auf! Haben Sie wirklich sorgfältig geprüft? Kann nochmal überprüft werden?Quelle zu Anweisungen: https://dyatkovskiy.com/2019/11/26/anti-make-install/
Viel Glück!
quelle