1. ホーム
  2. ubuntu

[解決済み] インストールされているすべてのOpenCVライブラリの削除

2022-01-29 10:24:09

質問

Kubuntu 11.10 (w/KDE 4.8)を使用しています。

これを全部読む前に:

私はただ、私のシステムからOpenCVの痕跡をすべて取り除き、新しく始めることがしたいだけなのです...。

全体像

まず、python-opencv と libopencv (2.1 だと思う) を以下のサイトからインストールした。 https://launchpad.net/~gijzelaar/+archive/opencv2 ずっと前に その時は python-opencv しか試していませんが、これは完璧に動作しました(OpenCV を使った C++ コードを使おうとはしませんでした)。

その後、最近OpenCV 2.3.1をソースからインストールしようとしたところ、インストールされましたが、(OpenCVを使って)自分のC++コードをコンパイルしているときに、libgtkがインストールされていないというエラーが発生し、以前はうまく動いていたPython opencvコードも壊れてしまいました。

そこで、libgtk2-devのライブラリをインストールし、OpenCV 2.3.1を再度コンパイルしてインストールしたのですが...。

それでもエラーが発生するので、cmakeやmakeなどを実行していた、tarされていない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 も削除してしまったのです。

EDITです。 パッケージマネージャをもう一度実行したところ、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)

システムからOpenCVの痕跡をすべて取り除き、新しく始めることができます。

解決方法は?

OpenCV をソースからビルドする場合、デフォルトでは、その出力は /usr/local/lib/usr/local/bin . しかし、エラーメッセージから判断すると、ライブラリは /usr/lib に、バイナリは /usr/bin ということで、そちらもチェックしてみてください。

また、Linuxの 見つける コマンドを使用します。つまり、すべてのOpenCVライブラリを見つけるには、以下のようにします(しばらく時間がかかるかもしれません)。

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

上記のコマンドは、opencvを名前に含むすべてのファイルを見つけ、それを削除するよう促します。いつものように、手動で削除するときは注意してください!

もう一つの方法は、手動でOpenCVを再コンパイルすることです( まさに を以前と同じように)。 make install を実行してインストールマニフェストを作成し、次に make uninstall を実行し、自浄作用があるかどうかを確認します。

お役に立てれば幸いです。:)