wake-up-neo.com

Entfernen aller installierten OpenCV-Bibliotheken

Ich lasse Kubuntu 11.10 (mit KDE 4.8) laufen

Bevor Sie das alles lesen: 

Ich möchte nur alle Spuren von OpenCV von meinem System entfernen, damit ich neu beginnen kann.

Die ganze Geschichte

Ich habe python-opencv und libopencv (2.1, glaube ich) vor langer Zeit von https://launchpad.net/~gijzelaar/+archive/opencv2 installiert. Ich habe zu dieser Zeit nur Python-opencv ausprobiert, was perfekt funktionierte (ich habe nicht versucht, C++ - Code mit OpenCV zu verwenden).

Dann habe ich vor kurzem versucht, OpenCV 2.3.1 von Source zu installieren, das installiert wurde, aber während ich meinen eigenen C++ - Code kompilierte (mit OpenCV), gab es mir Fehler über libgtk, die nicht installiert waren, und brach meinen Python-Opencv-Code, der zuvor einwandfrei lief

Also habe ich die libgtk2-dev-Bibliotheken installiert und OpenCV 2.3.1 erneut kompiliert und installiert. 

Der Fehler ist immer noch aufgetreten, daher löschte ich das unverpackte OpenCV-Verzeichnis, in dem ich cmake, make usw. ausgeführt habe. Ich habe die Deinstallation NICHT gemacht (was mir jetzt klar war, dass mein Fehler war)

und stattdessen das ubuntu opencv 2.3-Paket (mit allen Abhängigkeiten) von hier aus installiert: https://launchpad.net/~gijzelaar/+archive/opencv2.3

Jetzt ist das Problem, dass ich immer noch die gleiche Fehlermeldung bekomme, wenn ich meinen C++ - Code kompiliere, der OpenCV enthält. Der Fehler zeigt immer noch auf meinen (gelöschten) OpenCV-Quellordner:

OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvNamedWindow, file /home/anant/opencv/OpenCV-2.3.1/modules/highgui/src/window.cpp, line 275
terminate called after throwing an instance of 'cv::Exception'
  what():  /home/anant/opencv/OpenCV-2.3.1/modules/highgui/src/window.cpp:275: error: (-2) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function cvNamedWindow

Wie Sie sehen, verweist der Fehler immer noch auf das Verzeichnis, aus dem ich OpenCV kompiliert und installiert hatte

Gibt es eine Möglichkeit, alle Spuren meiner kompilierten Version von OpenCV vollständig zu entfernen und die Dateien einfach aus dem Ubuntu-Paket zu behalten? Wie bereits erwähnt, habe ich keine Deinstallation vorgenommen und das Installationsmanifest (törichterweise) gelöscht 

EDIT: Ich habe den Paketmanager erneut ausgeführt und festgestellt, dass nicht alle opencv-Pakete aus dem ppa ordnungsgemäß installiert wurden. Also habe ich eine Sudo apt-get-Installation von opencv durchgeführt, und jetzt bekomme ich diese Fehlermeldung:

Unpacking libopencv2.3 (from .../libopencv2.3_2.3.1-3_AMD64.deb) ...
dpkg: error processing /var/cache/apt/archives/libopencv2.3_2.3.1-3_AMD64.deb (--unpack):
 trying to overwrite '/usr/lib/libopencv_video.so.2.3.1', which is also in package libopencv-video2.3 2.3.1-4ppa1
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Unpacking opencv (from .../opencv_2.3.1-3_AMD64.deb) ...
dpkg: error processing /var/cache/apt/archives/opencv_2.3.1-3_AMD64.deb (--unpack):
 trying to overwrite '/usr/bin/opencv_haartraining', which is also in package libopencv-core-dev 2.3.1-4ppa1
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
 /var/cache/apt/archives/libopencv2.3_2.3.1-3_AMD64.deb
 /var/cache/apt/archives/opencv_2.3.1-3_AMD64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Ich möchte nur alle Spuren von OpenCV von meinem System entfernen, damit ich neu beginnen kann

22
flak37

Beim Erstellen von OpenCV aus der Quelle wird die Ausgabe standardmäßig in /usr/local/lib und /usr/local/bin platziert. Wie Sie anhand Ihrer Fehlermeldungen feststellen können, wurden die Bibliotheken in /usr/lib und die Binärdateien in /usr/bin abgelegt, sodass Sie auch dort einchecken können.

Sie können auch den Linux-Befehl find verwenden. Um alle OpenCV-Bibliotheken zu finden, können Sie Folgendes tun (dies kann eine Weile dauern):

$> Sudo find / -name "*opencv*" -exec rm -i {} \;

Der obige Befehl findet alle Dateien, die opencv im Namen enthalten, und fordert Sie auf, sie zu entfernen. Seien Sie wie immer vorsichtig, wenn Sie Dinge manuell löschen!

Eine andere Option könnte sein, OpenCV erneut manuell zu kompilieren (genau wie zuvor), make install, um das Installationsmanifest zu erstellen, und dann make uninstall auszuprobieren, um zu sehen, ob es sich bereinigt.

Hoffentlich hilft das! :)

40
mevatron

Sie können einen Sudo make uninstall für eine saubere Deinstallation durchführen

5
Navid

Wenn Sie über das Build-Verzeichnis verfügen, wird empfohlen, Folgendes auszuführen:

 $ Sudo make uninstall

aus dem Build-Verzeichnis gemäß der Antwort von @Navid 

Aber das werden einige .so * -Dateien irgendwo hinterlassen

So entfernen Sie alle diese Dateien vollständig:

$ Sudo rm /usr/local/{bin, lib}/*opencv* 

/usr/local ist das, worauf wir normalerweise CMAKE_INSTALL_PREFIX einstellen, während cmake ausgeführt wird. Ersetzen Sie es entsprechend Ihrer Ausführung von cmake.

4
sziraqui

Um alle Dateien und Ordner ohne "Interaktion" zu entfernen, verwenden Sie den folgenden Befehl:

Sudo find / -name "*opencv*" -exec rm -rf {} \;

VORSICHT: Es ist nicht ratsam, "rekursiv" und "erzwingen" zu löschen.

2
nitish bhardwaj

Wenn opencv mit dem Befehl Sudo make install in der Quelle installiert ist, wechseln Sie in den Build-Ordner und verwenden Sie Sudo make uninstall, um opencv zu deinstallieren

1
abggcv