当前位置: 首页>>技术教程>>正文


ubuntu – 删除所有已安装的OpenCV库

, ,

问题描述

我正在运行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

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

有没有办法完全删除我的OpenCV编译版本的所有痕迹,并仅保留ubuntu软件包中的文件?正如我之前提到的,我没有’make uninstall’,并且(愚蠢地)删除了install-manifest

编辑:我再次运行了程序包管理器,发现不是所有的ppa opencv程序包都已正确安装。所以我做了一个sudo apt-get再次安装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)

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

最佳思路

默认情况下,从源代码构建OpenCV时,会将其输出放置在/usr/local/lib/usr/local/bin中。尽管从错误消息来看,它似乎将库放置在/usr/lib中,将二进制文件放置在/usr/bin中,因此您也可以在其中检入。

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

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

上面的命令将找到名称中包含opencv的任何文件,并提示您将其删除。与往常一样,手动删除内容时要小心!

另一个选择可能是再次手动编译OpenCV(与您之前所做的完全一样),使用make install创建安装清单,然后尝试使用make uninstall来查看其是否会自行清理。

希望有帮助! 🙂

次佳思路

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

 $ sudo make uninstall

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

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

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

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

在运行cmake时,通常将CMAKE_INSTALL_PREFIX设置为/usr/local。根据您执行cmake的方式替换它

第三种思路

您可以执行sudo make uninstall进行干净卸载

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8537.html,未经允许,请勿转载。