I am trying to find the correct way to uninstall OpenCV 2.4 (default of Netrunner and Debian), and install OpenCV 3.3.
My method so far:
- Install Netrunner (keeping default repos) and update + upgrade system.
- Uninstall everything starting with “libopencv”:
sudo apt purge libopencv*
- Mark as manually installed anything which was unmarked during step 1).
- Install OpenCV 3.3.0 dependencies.
- Build OpenCV 3.3.0 from source.
- Install OpenCV 3.3.0 from source build.
sudo make install
The method works, and I can use OpenCV 3.3 in my CMake projects, which is what I wanted.
However, I am not sure if I have done something bad to my installation during step 1).
Specifically, running “sudo apt dist-upgrade --fix-policy”
now results in the following output:
The following NEW packages will be installed: appstream bsd-mailx exim4-base exim4-config exim4-daemon-light ffmpeg ffmpegthumbnailer ffmpegthumbs frei0r-plugins gnupg-l10n gstreamer1.0-libav gstreamer1.0-plugins-bad kdenlive laptop-detect libatm1 libav-tools libavdevice57 libavfilter6 libfarstream-0.2-5 libffmpegthumbnailer4v5 liblockfile-bin liblockfile1 libmlt++3 libmlt6 libopencv-calib3d2.4v5 libopencv-contrib2.4v5 libopencv-core2.4v5 libopencv-features2d2.4v5 libopencv-flann2.4v5 libopencv-gpu2.4v5 libopencv-highgui2.4-deb0 libopencv-imgproc2.4v5 libopencv-legacy2.4v5 libopencv-ml2.4v5 libopencv-objdetect2.4v5 libopencv-ocl2.4v5 libopencv-photo2.4v5 libopencv-stitching2.4v5 libopencv-superres2.4v5 libopencv-ts2.4v5 libopencv-video2.4v5 libopencv-videostab2.4v5 libpurple-bin libpurple0 melt muon-notifier muon-updater pidgin plasma-discover plasma-discover-common plasma-discover-private plasma-discover-updater publicsuffix qml-module-org-kde-kirigami2 smplayer smplayer-l10n smplayer-themes virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11 vokoscreen
Can you give me any hints on how to keep the command from reinstalling OpenCV 2.4 (besides not using --fix-policy)?
Perhaps you know which policy I’ve messed up, or can show me how I can find out myself.
I would like to be able to call “sudo apt dist-upgrade --fix-policy” later on for various reasons, without accidentally reinstalling OpenCV 2.4.
PS: On a side note, do you think I could have both versions of OpenCV installed without conflict? If so, can OpenCV 3.3.0 be default?
Edit: By using apt-cache rdepends on a number of packages, I found out that some packages depend on OpenCV 2.4.
So I will try to install OpenCV 3.3 side-by-side with OpenCV 2.4. If I succeed, I will post my findings
I found a very simple way.
Leave OpenCV 2.4 installed.
Build OpenCV 3.3, install to a custom directory using the CMAKE_INSTALL_PREFIX parameter.
Set environment variable OpenCV_DIR to the share/OpenCV folder of said custom directory.
This lets CMake find OpenCV 3.3. If I don’t want that, I either don’t set OpenCV_DIR, or I unset it in CMakeLists.txt.