Ich habe Quellcode verwendet, um ein Paket wie das folgende zu erstellen:
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib --with-package-name="Myplugin" --with-package-origin="http://www.ubuntu.org/" --enable-gtk-doc --disable-static
make
make install
Aber leider habe ich festgestellt, dass es sich um die neueste Version handelt und dass sie viele Fehler enthält. Daher muss sie entfernt / deinstalliert werden. Aber wie kann ich das machen? Ich habe es versucht, make clean; make uninstall
aber ich sehe immer noch, dass es existiert:
# pkg-config --list-all | grep Myplugin
myplugin-....
$ ls /usr/lib/myplugin/libXYZ.so
exist....
Wie entfernst du das jetzt?
quelle
checkinstall
- es macht das ganze Problem verdunsten.make install
als root ausgeführt wurden (z. B.sudo make install
), was normalerweise der Fall ist, es immer virtuell notwendig ist, ausgeführtsudo make uninstall
zu werden, um die Software zu entfernen.make install
, können Sie weiterhin verwendencheckinstall
. Normalerweisecheckinstall
wird alles, wasmake install
erstellt wurde, überschrieben . Danach einfach benutzendpkg -r <package.deb>
und alles sollte entfernt werden.Ich denke nicht, dass dies ein Fehler ist. Es wäre eine gute Idee, sich mit checkinstall vertraut zu machen, wenn Sie von der Quelle installieren.
Sie können checkinstall über die Repositorys installieren, eine kurze Beschreibung des Pakets.
CheckInstall verfolgt alle Dateien, die von Ihrem Installationsskript erstellt oder geändert wurden ("make install", "make install_modules", "setup" usw.), erstellt ein Standard-Binärpaket und installiert es auf Ihrem System, sodass Sie es deinstallieren können Standard-Paketverwaltungsdienstprogramme Ihrer Distribution.
Diese Links unten können hilfreich sein, um ein besseres Verständnis zu erhalten. http://en.wikipedia.org/wiki/CheckInstall
http://checkinstall.izto.org/
quelle
Dies ist kein Fehler - das Kompilieren aus dem Quellcode ist eine nicht unterstützte Methode zum Installieren von Software, die das Paketverwaltungssystem (das vom Software Center verwendet wird) vollständig umgeht.
Es gibt keinen Standard für die Installation oder Deinstallation von aus dem Quellcode kompilierter Software, sodass Ubuntu nicht weiß, was zu tun ist. Die Software wird nicht einmal als installiertes Programm aufgeführt.
Befolgen Sie die Anweisungen des Händlers zum Installieren und Entfernen dieser benutzerdefinierten Software. Sie können sich auch an den Entwickler wenden und ihn bitten, ein Debian-Paket zu erstellen, damit das Paketverwaltungssystem verwendet werden kann.
quelle
Dies ist kein Fehler, sondern passiert, wenn Entwickler auf die Verteilung über den Quellcode und nicht über die systemeigenen Verpackungsmethoden zurückgreifen.
Sie können Ihre Quelldateien mit checkinstall oder dhbuild zu Debian-Paketen machen. Ehrlich gesagt, meiner Meinung nach sollten neue Benutzer die Installation von der Quelle vermeiden, und Entwickler sollten es vermeiden, nur nach Quelle zu verteilen.
quelle
Ich kenne nur wenige Pakete, die "make uninstall" unterstützen, aber viele weitere, die make install DESTDIR = xxx "für gestaffelte Installationen unterstützen.
Sie können damit ein Paket erstellen, das Sie installieren, anstatt es direkt von der Quelle aus zu installieren. Ich hatte kein Glück mit checkinstall, aber fpm funktioniert sehr gut.
Dies kann Ihnen auch helfen, ein zuvor mit make install install installiertes Paket zu entfernen . Sie erzwingen einfach die Installation Ihres erstellten Pakets über das installierte make und deinstallieren es dann.
Zum Beispiel habe ich dies kürzlich verwendet, um mich mit protobuf-3.3.0 zu befassen. Auf RHEL7:
Bevorzugen Sie Yum gegenüber RPM, wenn Sie können.
Unter Debian9:
Bevorzugen Sie dpkg, wo Sie können.
Ich habe diese Antwort auch auf stackoverflow gepostet
quelle
Wir müssen die Tatsache verhandeln , die Deinstallation machen würde nicht immer funktionieren, so unten eher eine proaktive Lösung ist.
Dies beinhaltet die Verwendung des paco-Programms, das im Ubuntu Software Center verfügbar ist. Sobald wir paco installiert haben, können wir den Log-Modus verwenden, wenn wir ein Programm "installieren". Paco fungiert als Wrapper für Ihre "make install" und erstellt ein Protokoll im Verzeichnis / var / log / paco mit der Liste der Dateien, die in verschiedene Verzeichnisse kopiert wurden. Außerdem konnte man die Dateien im Paco Frontend sehen.
Als ich zum Beispiel PHP aus dem Quellcode kompilierte, habe ich Folgendes getan:
Der Parameter l veranlasst das paco, im Protokollmodus zu laufen. Dadurch wurde eine Protokolldatei mit dem Namen php5 in / var / log / paco erstellt (der Name, den ich im Befehl angegeben habe). Es enthielt alle Dateien, die während der Installation an verschiedene Standardspeicherorte kopiert wurden. Sie können einen Befehlszeileneditor oder eine Paco-GUI zum Anzeigen der Dateien verwenden.
Unten sehen Sie ein Beispiel für das
Abrufen der Dateiliste mit dem sed-Befehlszeileneditor (Ersetzen Sie php5 durch Ihren Dateinamen).
Sobald Sie die Liste der Dateien erhalten haben, wissen Sie, wie Sie sie löschen können, nicht wahr? In der Tat können Sie die Ergebnisse des obigen Befehls mithilfe der folgenden Backticks an rm übergeben:
Job erledigt!
Hinweis: Aufgrund der Einschränkungen von LD_PRELOAD kann paco den Trace von suid-Programmen nicht verfolgen. Siehe Manpage.
quelle
Ich hatte php-5.6.30 aus dem Quellcode kompiliert, ohne es mit openssl zu konfigurieren, also musste ich es von Grund auf neu installieren. Die Verwendung von make uninstall funktionierte nicht , da das Makefile für php es nicht unterstützt.
Allerdings hat dieser Schritt bei mir geklappt, - ich habe alle Dateien, die mit PHP zu tun haben, aufgelistet und manuell entfernt, es hat ungefähr 5 Minuten gedauert, ohne dass ich ins Schwitzen gekommen bin. Sie können diese Schritte auf ähnliche Weise verwenden, um Ihre kompilierte Software zu deinstallieren.
Ersetzen Sie PHP durch die Software, die Sie deinstallieren müssen
whereis php
Der obige Befehl listet Verzeichnisse auf, in denen die Binärdateien installiert sind, z. B .: / usr / local / bin / php, / usr / bin / php. Entfernen Sie alle in Ihrer Ausgabe aufgeführten Dateien / Verzeichnisse.
sudo rm -f /usr/local/bin/php
Tun Sie dies mit allen in der obigen Ausgabe aufgelisteten Dateien und Sie können die neuere Version von Grund auf neu installieren.
quelle