删除所有已安装的OpenCV库

fla*_*k37 24 ubuntu opencv uninstall

我正在运行Kubuntu 11.10(带KDE 4.8)

在你读完这一切之前:

我只是想从我的系统中删除所有OpenCV的痕迹,所以我可以重新开始..

整个故事

很久以前我首先从https://launchpad.net/~gijzelaar/+archive/opencv2安装了python-opencv和libopencv(2.1我认为).我当时只尝试过python-opencv,它运行得很好(我没有尝试使用OpenCV的C++代码)

然后我最近尝试从源安装OpenCV 2.3.1,它已安装但在编译我自己的C++代码(使用OpenCV)时,它给了我关于未安装libgtk的错误,并且还破坏了我之前运行良好的python opencv代码

所以我安装了libgtk2-dev库并再次编译和安装了OpenCV 2.3.1 ..

错误仍然存​​在,所以我删除了我运行cmake,make等的未解析的OpenCV目录.我没有卸载(我现在意识到这是我的错误)

而是从这里安装了ubuntu opencv 2.3软件包(包含所有依赖项):https://launchpad.net/~gijzelaar/+archive/opencv2.3

现在的问题是,当我编译包含OpenCV的C++代码时,我仍然得到相同的错误,并且错误仍然指向我的(已删除的)OpenCV源文件夹:

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
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,错误仍然指向我编译和安装OpenCV的目录

有没有办法彻底删除我编译的OpenCV版本的所有痕迹,只是保留ubuntu包中的文件?正如我之前提到的,我没有'卸载'并且(愚蠢地)删除了install-manifest

编辑: 我再次运行包管理器,发现并非所有来自ppa的opencv包都已正确安装.所以我再次做了一个sudo apt-get install opencv,现在我收到了这个错误:

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)
Run Code Online (Sandbox Code Playgroud)

我只是想从我的系统中删除所有OpenCV的痕迹,所以我可以重新开始

mev*_*ron 41

默认情况下,从源代码构建OpenCV时,它会将其输出放在/usr/local/lib和中/usr/local/bin.虽然,从您的错误消息判断,它看起来像是放入了库/usr/lib和二进制文件/usr/bin,因此您也可以在那里签到.

您也可以使用Linux find命令.因此,要查找所有OpenCV库,您可以执行以下操作(这可能需要一段时间):

$> sudo find / -name "*opencv*" -exec rm -i {} \;
Run Code Online (Sandbox Code Playgroud)

上面的命令会在名称中找到包含opencv的任何文件,并会提示您将其删除.一如既往,手动删除时要小心!

另一种选择可能是再次手动编译OpenCV(与之前完全一样),make install创建安装清单,然后尝试make uninstall查看它是否会自行清理.

希望有所帮助!:)

  • 关于`find`命令,这不是一个很好的答案。这将删除任何内容,即使在您的用户目录或其他用户的目录中,也可能会删除其中的所有内容(例如,自己的脚本,文件,来自其他库的文件等)。非常危险,我不会使用它。如果确实要删除这些文件,请非常小心并测试版本是否干扰apt-packages:sudo find / usr / -name“ * opencv * 3.4 *” -delete` (2认同)
  • @DomTomCat是的,您绝对可以这样过滤起始目录。我还建议使用rm -i进行交互模式,以确保您确实要删除文件。 (2认同)

szi*_*qui 7

如果您拥有构建目录,那么建议执行:

 $ sudo make uninstall
Run Code Online (Sandbox Code Playgroud)

从构建目录按照@Navid的答案

但这会在某个地方留下几个.so *文件

要完全删除所有此类文件,请执行以下操作:

$ sudo rm /usr/local/{bin,lib}/*opencv* 
Run Code Online (Sandbox Code Playgroud)

/usr/local这是我们通常CMAKE_INSTALL_PREFIX在跑步时设置的cmake。根据执行方式替换它cmake

  • {bin,lib}`之间的空格使它看起来像我的Ubuntu 16.04上的两个单独路径。它应该是`{bin,lib}`。 (2认同)

Nav*_*vid 6

你可以做sudo make uninstall一个干净的卸载


Jos*_*osh 5

我找不到构建目录,所以:

sudo apt-get purge '*opencv*'

和:

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

这似乎效果很好。

您可以通过以下方式仔细检查:

sudo find / -name "*opencv*";