當前位置: 首頁>>技術教程>>正文


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/zh-tw/article/8537.html,未經允許,請勿轉載。