What is the root cause of "E: Unable to correct problems, you have held broken packages."

6,862

The PPA is broken. It contains a version of vlc-plugin-video-output which

Breaks: vlc-plugin-base (<< 3.0.0~rc1~20171206-1~)

but the version of vlc-plugin-base in the repository has a lower version number (thanks to the extra ~ in 3.0.0~rc1~~git20171215+r73271+108~ubuntu17.10.1), so the packages can’t be installed!

There’s no easy fix, you’ll have to either wait for the PPA maintainers to fix things, or build VLC from source yourself (the package source is very easy to build).

Share:
6,862

Related videos on Youtube

Brandon Condrey
Author by

Brandon Condrey

Consider opposing apartheid in Palestine and signing onto the BDS Movement; #1 User for DBA.SE 2017. Available for contracting: 281.901.0011 PostgreSQL &amp; PostGIS / MySQL / SQL Server JavaScript, Typescript, Rx.js, Node.js, Angular Also: C / Perl / Python / Rust / x86 Assembly

Updated on September 18, 2022

Comments

  • Brandon Condrey
    Brandon Condrey over 1 year

    Previously, I was getting this error when I merely tried to update. I believe this problem is related to the VLC PPA which has always been total and utter trash on Ubuntu. I had to actually remove a file that was under package control with rm in order to purge the *vlc* packages. Now, that I deleted that file, I was able to relatively easily delete the vlc packages. I figured this would take me back to the begining and I could again try to install, but when I do I get this error,

    sudo apt-get install vlc
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable
    distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:
    
    The following packages have unmet dependencies:
     vlc : Depends: vlc-plugin-video-output (= 3.0.0~rc1~~git20171215+r73271+108~ubuntu17.10.1) but it is not going to be installed
    E: Unable to correct problems, you have held broken packages.
    

    Now, a few things

    • I don't want to use Aptitude! That's not a solution, as was suggested here. I want to know what the problem is.
    • I don't have any marked packages. These commands return nothing.

      dpkg --get-selections | grep hold
      apt-mark showhold
      
    • I have nothing with vlc. This command returns nothing.

      dpkg -l | grep -i vlc
      

    Where can I go looking for what is causing this problem?

    sudo apt-get -s -o Debug::pkgProblemResolver=yes install vlc
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    Starting pkgProblemResolver with broken count: 1
    Starting 2 pkgProblemResolver with broken count: 1
    Investigating (0) vlc:amd64 < none -> 3.0.0~rc1~~git20171215+r73271+108~ubuntu17.10.1 @un puN Ib >
    Broken vlc:amd64 Depends on vlc-plugin-base:amd64 < none | 3.0.0~rc1~~git20171215+r73271+108~ubuntu17.10.1 @un uH > (= 3.0.0~rc1~~git20171215+r73271+108~ubuntu17.10.1)
      Considering vlc-plugin-base:amd64 0 as a solution to vlc:amd64 9999
      Re-Instated vlc-plugin-base:amd64
    Investigating (0) vlc-plugin-video-output:amd64 < none -> 3.0.0~rc1~~git20171215+r73271+108~ubuntu17.10.1 @un uN Ib >
    Broken vlc-plugin-video-output:amd64 Breaks on vlc-plugin-base:amd64 < none -> 3.0.0~rc1~~git20171215+r73271+108~ubuntu17.10.1 @un uN > (< 3.0.0~rc1~20171206-1~)
      Considering vlc-plugin-base:amd64 0 as a solution to vlc-plugin-video-output:amd64 0
      Holding Back vlc-plugin-video-output:amd64 rather than change vlc-plugin-base:amd64
    Investigating (1) vlc:amd64 < none -> 3.0.0~rc1~~git20171215+r73271+108~ubuntu17.10.1 @un puN Ib >
    Broken vlc:amd64 Depends on vlc-plugin-video-output:amd64 < none | 3.0.0~rc1~~git20171215+r73271+108~ubuntu17.10.1 @un uH > (= 3.0.0~rc1~~git20171215+r73271+108~ubuntu17.10.1)
      Considering vlc-plugin-video-output:amd64 0 as a solution to vlc:amd64 9999
      Re-Instated vlc-plugin-video-output:amd64
    Investigating (1) vlc-plugin-video-output:amd64 < none -> 3.0.0~rc1~~git20171215+r73271+108~ubuntu17.10.1 @un uN Ib >
    Broken vlc-plugin-video-output:amd64 Breaks on vlc-plugin-base:amd64 < none -> 3.0.0~rc1~~git20171215+r73271+108~ubuntu17.10.1 @un uN > (< 3.0.0~rc1~20171206-1~)
      Considering vlc-plugin-base:amd64 0 as a solution to vlc-plugin-video-output:amd64 0
      Holding Back vlc-plugin-video-output:amd64 rather than change vlc-plugin-base:amd64
    Investigating (2) vlc:amd64 < none -> 3.0.0~rc1~~git20171215+r73271+108~ubuntu17.10.1 @un puN Ib >
    Broken vlc:amd64 Depends on vlc-plugin-video-output:amd64 < none | 3.0.0~rc1~~git20171215+r73271+108~ubuntu17.10.1 @un uH > (= 3.0.0~rc1~~git20171215+r73271+108~ubuntu17.10.1)
      Considering vlc-plugin-video-output:amd64 0 as a solution to vlc:amd64 9999
    Done
    Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable
    distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:
    
    The following packages have unmet dependencies:
     vlc : Depends: vlc-plugin-video-output (= 3.0.0~rc1~~git20171215+r73271+108~ubuntu17.10.1) but it is not going to be installed
    E: Unable to correct problems, you have held broken packages.
    

    It was requested that I try apt-get -f install,

    sudo apt-get install -f
    [sudo] password for ecarroll: 
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
    

    Running a quick check with apt-cache policy as requested,

    apt-cache policy vlc vlc-plugin-video-output vlc-plugin-base
    vlc:
      Installed: (none)
      Candidate: 3.0.0~rc1~~git20171215+r73271+108~ubuntu17.10.1
      Version table:
         3.0.0~rc1~~git20171215+r73271+108~ubuntu17.10.1 500
            500 http://ppa.launchpad.net/videolan/master-daily/ubuntu artful/main amd64 Packages
         2.2.6-6 500
            500 http://us.archive.ubuntu.com/ubuntu artful/universe amd64 Packages
    vlc-plugin-video-output:
      Installed: (none)
      Candidate: 3.0.0~rc1~~git20171215+r73271+108~ubuntu17.10.1
      Version table:
         3.0.0~rc1~~git20171215+r73271+108~ubuntu17.10.1 500
            500 http://ppa.launchpad.net/videolan/master-daily/ubuntu artful/main amd64 Packages
         2.2.6-6 500
            500 http://us.archive.ubuntu.com/ubuntu artful/universe amd64 Packages
    vlc-plugin-base:
      Installed: (none)
      Candidate: 3.0.0~rc1~~git20171215+r73271+108~ubuntu17.10.1
      Version table:
         3.0.0~rc1~~git20171215+r73271+108~ubuntu17.10.1 500
            500 http://ppa.launchpad.net/videolan/master-daily/ubuntu artful/main amd64 Packages
         2.2.6-6 500
            500 http://us.archive.ubuntu.com/ubuntu artful/universe amd64 Packages
    

    Running, sudo apt-get install vlc vlc-plugin-video-output vlc-plugin-base

    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable
    distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:
    
    The following packages have unmet dependencies:
     vlc-plugin-video-output : Breaks: vlc-plugin-base (< 3.0.0~rc1~20171206-1~) but 3.0.0~rc1~~git20171215+r73271+108~ubuntu17.10.1 is to be installed
    E: Unable to correct problems, you have held broken packages.
    

    Running, apt-cache show vlc-plugin-video-output vlc-plugin-base

    Package: vlc-plugin-video-output
    Source: vlc
    Priority: optional
    Section: video
    Installed-Size: 747
    Maintainer: Debian Multimedia Maintainers <[email protected]>
    Architecture: amd64
    Version: 3.0.0~rc1~~git20171215+r73271+108~ubuntu17.10.1
    Replaces: vlc-plugin-base (<< 3.0.0~rc1~20171206-1~)
    Depends: libaa1 (>= 1.4p5), libavcodec57 (>= 7:3.3.4) | libavcodec-extra57 (>= 7:3.3.4), libavutil55 (>= 7:3.3.4), libc6 (>= 2.16), libcaca0 (>= 0.99.beta17-1), libegl1-mesa (>= 7.8.1) | libegl1-x11, libgl1-mesa-glx | libgl1, libgles2-mesa (>= 7.8.1) | libgles2, libva-drm1 (>= 1.1.0), libva-wayland1 (>= 1.3.0), libva-x11-1 (>= 1.0.3), libva1 (>= 1.7.3), libvlccore9 (>= 3.0.0~rc1~~git20171215+r73271+108~ubuntu17.10.1~), libwayland-client0 (>= 1.9.91), libwayland-egl1-mesa (>= 10.0.2) | libwayland-egl1, libx11-6, libxcb-keysyms1 (>= 0.4.0), libxcb-shm0, libxcb-xv0 (>= 1.2), libxcb1, vlc-plugin-abi-4-0-0
    Enhances: vlc
    Breaks: vlc-plugin-base (<< 3.0.0~rc1~20171206-1~)
    Filename: pool/main/v/vlc/vlc-plugin-video-output_3.0.0~rc1~~git20171215+r73271+108~ubuntu17.10.1_amd64.deb
    Size: 187422
    MD5sum: 0d25595004292437bbc298de8ce0ffdd
    SHA1: 4be5a204b9aeedfc444e8520010fc3ac02363873
    SHA256: fb8f64cb8ba1344e73e666c0621a974ccc313ffcbe8c38760765e40f9c0b637d
    Description-en: multimedia player and streamer (video output plugins)
     VLC is the VideoLAN project's media player. It plays MPEG, MPEG-2, MPEG-4,
     DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3, Ogg/Vorbis files, DVDs, VCDs,
     podcasts, and multimedia streams from various network sources.
     .
     This package contains the video output plugins.
    Description-md5: 304efe8a3dcaf595b6085adb45316c41
    Multi-Arch: same
    
    Package: vlc-plugin-video-output
    Architecture: amd64
    Version: 2.2.6-6
    Multi-Arch: same
    Priority: optional
    Section: universe/video
    Source: vlc
    Origin: Ubuntu
    Maintainer: Ubuntu Developers <[email protected]>
    Original-Maintainer: Debian Multimedia Maintainers <[email protected]>
    Bugs: https://bugs.launchpad.net/ubuntu/+filebug
    Installed-Size: 249
    Depends: libvlccore8 (= 2.2.6-6), libaa1 (>= 1.4p5), libc6 (>= 2.14), libcaca0 (>= 0.99.beta17-1), libegl1-mesa (>= 7.8.1) | libegl1-x11, libgl1-mesa-glx | libgl1, libgles2-mesa (>= 7.8.1) | libgles2, libx11-6, libxcb-keysyms1 (>= 0.4.0), libxcb-shm0, libxcb-xv0 (>= 1.2), libxcb1
    Enhances: vlc
    Filename: pool/universe/v/vlc/vlc-plugin-video-output_2.2.6-6_amd64.deb
    Size: 53992
    MD5sum: b781e5a9bd6f9f513914f3bd5ab5e5f3
    SHA1: 5e7a6a24e7ecb9c3944447303f7a276ec8dd592b
    SHA256: e3e66e617cee1e9db3d26b37de8c26b4d8a55901eee3e16c6e1a94f1d37be988
    Homepage: https://www.videolan.org/vlc/
    Description-en: multimedia player and streamer (video output plugins)
     VLC is the VideoLAN project's media player. It plays MPEG, MPEG-2, MPEG-4,
     DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3, Ogg/Vorbis files, DVDs, VCDs,
     podcasts, and multimedia streams from various network sources.
     .
     This package contains the video output plugins.
    Description-md5: 304efe8a3dcaf595b6085adb45316c41
    Task: kubuntu-desktop, kubuntu-full, edubuntu-desktop-gnome, lubuntu-qt-desktop, ubuntustudio-video, ubuntustudio-graphics, ubuntu-mate-desktop
    
    Package: vlc-plugin-base
    Source: vlc
    Priority: optional
    Section: video
    Installed-Size: 10845
    Maintainer: Debian Multimedia Maintainers <[email protected]>
    Architecture: amd64
    Version: 3.0.0~rc1~~git20171215+r73271+108~ubuntu17.10.1
    Recommends: xdg-utils
    Replaces: vlc-plugin-zvbi (<< 3.0.0~rc1~20171206-1~)
    Suggests: libdvdcss2
    Depends: vlc-data (= 3.0.0~rc1~~git20171215+r73271+108~ubuntu17.10.1), liba52-0.7.4, libarchive13 (>= 3.1.2), libaribb24-0 (>= 1.0.3), libasound2 (>= 1.0.27), libass9 (>= 1:0.13.6), libavahi-client3 (>= 0.6.16), libavahi-common3 (>= 0.6.16), libavc1394-0 (>= 0.5.3), libavcodec57 (>= 7:3.3.4) | libavcodec-extra57 (>= 7:3.3.4), libavformat57 (>= 7:3.3.4), libavutil55 (>= 7:3.3.4), libbasicusageenvironment1, libbluray2 (>= 1:1.0.0), libc6 (>= 2.16), libcairo2 (>= 1.13.1), libcddb2, libchromaprint1 (>= 1.3.2), libcrystalhd3 (>= 1:0.0~git20110715.fdd2f19), libdbus-1-3 (>= 1.9.14), libdc1394-22, libdca0 (>= 0.0.5), libdvbpsi10 (>= 1.3.0), libdvdnav4 (>= 5.0.3), libdvdread4 (>= 4.1.3), libebml4v5 (>= 1.3.4-2~), libfaad2 (>= 2.7), libflac8 (>= 1.3.0), libfontconfig1 (>= 2.11.94), libfreetype6 (>= 2.2.1), libfribidi0 (>= 0.19.2), libgcc1 (>= 1:3.4), libgcrypt20 (>= 1.7.0), libglib2.0-0 (>= 2.28.0), libgnutls30 (>= 3.5.6), libgpg-error0 (>= 1.14), libgroupsock8, libharfbuzz0b (>= 0.9.4), libjpeg8 (>= 8c), libkate1 (>= 0.3.0), liblirc-client0, liblivemedia58, liblua5.2-0, libmad0 (>= 0.15.1b-3), libmatroska6v5 (>= 1.4.5), libmicrodns0 (>= 0.0.3), libmpcdec6 (>= 1:0.1~r435), libmpeg2-4 (>= 0.5.1), libmpg123-0 (>= 1.13.7), libmtp9 (>= 1.1.0), libncursesw5 (>= 6), libnfs8 (>= 1.9.7), libogg0 (>= 1.1.0), libopenmpt-modplug1 (>= 0.2.7386~beta20.3), libopus0 (>= 1.1), libpng16-16 (>= 1.6.2-1), libpostproc54 (>= 7:3.3.4), libpulse0 (>= 0.99.4), libraw1394-11, libresid-builder0c2a, librsvg2-2 (>= 2.14.4), libsamplerate0 (>= 0.1.7), libsdl-image1.2 (>= 1.2.10), libsdl1.2debian (>= 1.2.11), libsecret-1-0 (>= 0.7), libshine3 (>= 3.1.0), libshout3, libsidplay2, libsndio6.1 (>= 1.1.0), libsoxr0 (>= 0.1.0), libspeex1 (>= 1.2~beta3-1), libspeexdsp1 (>= 1.2~beta3.2-1), libssh2-1 (>= 1.2.3), libstdc++6 (>= 5.2), libswscale4 (>= 7:3.3.4), libsystemd0, libtag1v5 (>= 1.9.1-2.2~), libtheora0 (>= 1.0), libtinfo5 (>= 6), libtwolame0 (>= 0.3.6), libudev1 (>= 183), libupnp6 (>= 1:1.6.19), libusageenvironment3, libva-drm1 (>= 1.1.0), libva1 (>= 1.7.3), libvlccore9 (>= 3.0.0~rc1~~git20171215+r73271+108~ubuntu17.10.1~), libvorbis0a (>= 1.1.2), libvorbisenc2 (>= 1.1.2), libx264-148, libx265-130 (>= 2.5), libxcb-keysyms1 (>= 0.4.0), libxcb1, libxml2 (>= 2.7.4), libzvbi0 (>= 0.2.35), zlib1g (>= 1:1.1.4), vlc-plugin-abi-4-0-0
    Breaks: vlc-plugin-zvbi (<< 3.0.0~rc1~20171206-1~)
    Filename: pool/main/v/vlc/vlc-plugin-base_3.0.0~rc1~~git20171215+r73271+108~ubuntu17.10.1_amd64.deb
    Size: 2726256
    MD5sum: 02cfa70575f76df46096e0f9df8dac74
    SHA1: 0c45fa13a2c3473e27fdc32d5d4da7bdd0237907
    SHA256: fcfc90a4c13a0c695bb342ca980087e1235cdf955173b18c23056615618a288a
    Description-en: multimedia player and streamer (base plugins)
     VLC is the VideoLAN project's media player. It plays MPEG, MPEG-2, MPEG-4,
     DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3, Ogg/Vorbis files, DVDs, VCDs,
     podcasts, and multimedia streams from various network sources.
     .
     This package contains most plugins which are shipped in more specialied plugin
     packages.
    Description-md5: 103cb021db8e172eaddc03ab0f07e203
    Multi-Arch: same
    
    Package: vlc-plugin-base
    Architecture: amd64
    Version: 2.2.6-6
    Multi-Arch: same
    Priority: optional
    Section: universe/video
    Source: vlc
    Origin: Ubuntu
    Maintainer: Ubuntu Developers <[email protected]>
    Original-Maintainer: Debian Multimedia Maintainers <[email protected]>
    Bugs: https://bugs.launchpad.net/ubuntu/+filebug
    Installed-Size: 27372
    Depends: libvlccore8 (= 2.2.6-6), liba52-0.7.4, libasound2 (>= 1.0.27), libass9 (>= 1:0.13.6), libavahi-client3 (>= 0.6.16), libavahi-common3 (>= 0.6.16), libavc1394-0 (>= 0.5.3), libbasicusageenvironment1, libbluray2 (>= 1:0.5.0), libbz2-1.0, libc6 (>= 2.17), libcairo2 (>= 1.13.1), libcddb2, libcdio13 (>= 0.83), libchromaprint1 (>= 1.3.2), libcrystalhd3 (>= 1:0.0~git20110715.fdd2f19), libdbus-1-3 (>= 1.9.14), libdc1394-22, libdca0 (>= 0.0.5), libdvbpsi10 (>= 1.3.0), libdvdnav4 (>= 5.0.3), libdvdread4 (>= 4.1.3), libebml4v5 (>= 1.3.4-2~), libfaad2 (>= 2.7), libflac8 (>= 1.3.0), libfontconfig1 (>= 2.11.94), libfreetype6 (>= 2.2.1), libfribidi0 (>= 0.19.2), libgcc1 (>= 1:3.4), libgcrypt20 (>= 1.7.0), libglib2.0-0 (>= 2.12.0), libgme0 (>= 0.5.5), libgnutls30 (>= 3.5.6), libgpg-error0 (>= 1.14), libgroupsock8, libgsm1 (>= 1.0.13), libjpeg8 (>= 8c), libkate1 (>= 0.3.0), liblirc-client0, liblivemedia58, liblua5.2-0, liblzma5 (>= 5.1.1alpha+20120614), libmad0 (>= 0.15.1b-3), libmatroska6v5 (>= 1.4.5), libmp3lame0, libmpcdec6 (>= 1:0.1~r435), libmpeg2-4 (>= 0.5.1), libmtp9 (>= 1.1.0), libncursesw5 (>= 6), libogg0 (>= 1.1.0), libopenmpt-modplug1 (>= 0.2.7386~beta20.3), libopus0 (>= 1.1), libpng16-16 (>= 1.6.2-1), libpulse0 (>= 0.99.4), libraw1394-11, libresid-builder0c2a, librsvg2-2 (>= 2.14.4), librtmp1 (>= 2.3), libsamplerate0 (>= 0.1.7), libsdl-image1.2 (>= 1.2.10), libsdl1.2debian (>= 1.2.11), libshine3 (>= 3.1.0), libshout3, libsidplay2, libsnappy1v5, libsndio6.1 (>= 1.1.0), libspeex1 (>= 1.2~beta3-1), libspeexdsp1 (>= 1.2~beta3.2-1), libssh-gcrypt-4 (>= 0.4.2), libssh2-1 (>= 1.2), libstdc++6 (>= 5.2), libtag1v5 (>= 1.9.1-2.2~), libtheora0 (>= 1.0), libtinfo5 (>= 6), libtwolame0 (>= 0.3.10), libudev1 (>= 183), libupnp6 (>= 1:1.6.19), libusageenvironment3, libva-drm1 (>= 1.1.0), libva-x11-1 (>= 1.0.3), libva1 (>= 1.7.3), libvcdinfo0 (>= 0.7.21), libvorbis0a (>= 1.1.2), libvorbisenc2 (>= 1.1.2), libvpx4 (>= 1.6.0), libwavpack1 (>= 4.40.0), libwebp6 (>= 0.5.1), libwebpmux3 (>= 0.6.0-3), libx11-6, libx264-148, libx265-130 (>= 2.5), libxcb-keysyms1 (>= 0.4.0), libxcb1, libxml2 (>= 2.7.4), libxvidcore4 (>= 1.2.2), libzvbi0 (>= 0.2.35), zlib1g (>= 1:1.2.0.2), vlc-data (= 2.2.6-6)
    Recommends: xdg-utils
    Suggests: libdvdcss2
    Filename: pool/universe/v/vlc/vlc-plugin-base_2.2.6-6_amd64.deb
    Size: 7822760
    MD5sum: 18b84f38bd2569d84b8ad409e0053267
    SHA1: e3832d8afbeffc6d320ed42e5a0ad55a25701412
    SHA256: e564b23d60b45de85576cb0add1fc31b21586f8c05f24323f148a3cf579951ed
    Homepage: https://www.videolan.org/vlc/
    Description-en: multimedia player and streamer (base plugins)
     VLC is the VideoLAN project's media player. It plays MPEG, MPEG-2, MPEG-4,
     DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3, Ogg/Vorbis files, DVDs, VCDs,
     podcasts, and multimedia streams from various network sources.
     .
     This package contains most plugins which are shipped in more specialied plugin
     packages.
    Description-md5: 103cb021db8e172eaddc03ab0f07e203
    Task: kubuntu-desktop, kubuntu-full, edubuntu-desktop-gnome, lubuntu-qt-desktop, ubuntustudio-video, ubuntustudio-graphics, ubuntu-mate-desktop
    
  • Brandon Condrey
    Brandon Condrey over 6 years
    Ahh so the ~ at the end of vlc-plugin-base's version number did it! What ever is canonicalizing the version number should be a lot louder, and less cryptic. that makes sense.
  • Stephen Kitt
    Stephen Kitt over 6 years
    No, it’s not the ~ at the end of the version number, it’s the ~ before the git. apt compares 3.0.0~rc1~~git20171215+r73271+108~ubuntu17.10.1 to 3.0.0~rc1~20171206-1~ and finds that the former is less than the latter. I agree it would be nice to have better error messages!